首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -基本选择查询只返回mysql数据库的第一行

PHP -基本选择查询只返回mysql数据库的第一行
EN

Stack Overflow用户
提问于 2014-07-25 04:13:57
回答 5查看 3.4K关注 0票数 0

我一直在运行phpMyAdmin查询,它显示了所有的行,但是我在php中的查询只返回第一行。

代码语言:javascript
复制
$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);
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 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(),要么使用其他(更常见的)方法循环遍历结果集,如下所示:

代码语言:javascript
复制
while($row = mysqli_fetch_row($result)) {
    // do stuff
}
票数 2
EN

Stack Overflow用户

发布于 2014-07-25 04:16:47

您必须使用mysqli_num_rows($result)函数来计数由MySQLi查询返回的行。

票数 1
EN

Stack Overflow用户

发布于 2014-07-25 04:19:13

尝尝这个

代码语言:javascript
复制
echo mysqli_num_rows($result);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24947936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档