首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将MySQL数据库的多行放入多维数组(PHP)?

如何将MySQL数据库的多行放入多维数组(PHP)?
EN

Stack Overflow用户
提问于 2014-09-13 05:57:45
回答 2查看 57关注 0票数 0

我正在开发一个系统,在这个系统中,查询会检查数据库中匹配多个ids的记录,并将每一行放入自己的数组中。到目前为止,我在它自己的数组中只有最后一行要回显。以下是查询代码:

代码语言:javascript
复制
$query = "SELECT * FROM messages WHERE senderid IN ($senderids) ORDER BY messageid DESC";
$resource = mysql_query($query, $database);
$result = mysql_fetch_array($resource);
foreach($result as $result1)
    {
    print_r($result1);
    echo '<br>';
    }

这就是浏览器中的回声:

代码语言:javascript
复制
2
2
1
1
TEST MSG 2
TEST MSG 2
2014_09_13_01:29:59
2014_09_13_01:29:59

这就是该回应的内容:

代码语言:javascript
复制
Array ([messageid] => 1 [senderid] => 1 [message] => test message [date] => 2014_09_13_01:01:09)
Array ([messageid] => 2 [senderid] => 1 [message] => TEST MSG 2 [date] => 2014_09_13_01:29:59)

我该如何解决这个问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-13 06:09:24

mysql_fetch_array不返回整个结果集,只返回当前游标处的行。您的代码没有移动mysql游标;要做到这一点,代码应该是:

代码语言:javascript
复制
$resource = mysql_query($query, $database);
while($row = mysql_fetch_array($resource)){
  print_r($row);
  echo '<br />';
}

另外,对于您发布的预期输出,您应该使用mysql_fetch_assoc,因为它将是带有列名的散列,而不是索引数组。

票数 1
EN

Stack Overflow用户

发布于 2014-09-13 06:23:53

代码语言:javascript
复制
$query = "SELECT * FROM messages WHERE senderid IN ($senderids) ORDER BY messageid DESC";
$resource = mysql_query($query, $database);
while($result = mysql_fetch_array($resource))
{
print_r($result);    // OR $array[] = $result; and print $array outside the while loop 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25820287

复制
相关文章

相似问题

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