我一直在运行phpMyAdmin查询,它显示了所有的行,但是我在php中的查询只返回第一行。
$result = $mydb -> query("SELECT * FROM music_sheet WHERE category='".$_REQUEST["submitter"]."'");
print(count($result)); //always returns 1
for ($x = 0; $x < count($result); $x++) {
$row = mysqli_fetch_row($result);
}发布于 2014-07-25 04:27:05
作为参考,下面是count()返回1的原因。从手册中:
如果参数不是数组,也不是具有实现的可数接口的对象,则返回1。有一个异常,如果array_or_countable参数为NULL,则返回0。
由于$result是从查询中返回的资源 (object),而不是在循环中从资源中获取实际数据的数组,count($resource)将返回1。
当然,您的解决方案是使用mysqli_num_rows()。要从这个资源中检索数据,您需要像正在做的那样循环它,但要么使用mysqli_num_rows()代替count(),要么使用其他(更常见的)方法循环遍历结果集,如下所示:
while($row = mysqli_fetch_row($result)) {
// do stuff
}发布于 2014-07-25 04:16:47
您必须使用mysqli_num_rows($result)函数来计数由MySQLi查询返回的行。
发布于 2014-07-25 04:19:13
尝尝这个
echo mysqli_num_rows($result);https://stackoverflow.com/questions/24947936
复制相似问题