我正在开发一个系统,在这个系统中,查询会检查数据库中匹配多个ids的记录,并将每一行放入自己的数组中。到目前为止,我在它自己的数组中只有最后一行要回显。以下是查询代码:
$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>';
}这就是浏览器中的回声:
2
2
1
1
TEST MSG 2
TEST MSG 2
2014_09_13_01:29:59
2014_09_13_01:29:59这就是该回应的内容:
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)我该如何解决这个问题呢?
发布于 2014-09-13 06:09:24
mysql_fetch_array不返回整个结果集,只返回当前游标处的行。您的代码没有移动mysql游标;要做到这一点,代码应该是:
$resource = mysql_query($query, $database);
while($row = mysql_fetch_array($resource)){
print_r($row);
echo '<br />';
}另外,对于您发布的预期输出,您应该使用mysql_fetch_assoc,因为它将是带有列名的散列,而不是索引数组。
发布于 2014-09-13 06:23:53
$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
}https://stackoverflow.com/questions/25820287
复制相似问题