【问题标题】:mysql_fetch_array printing only first result [duplicate]mysql_fetch_array 只打印第一个结果[重复]
【发布时间】:2012-10-01 21:22:27
【问题描述】:

可能重复:
Looping through mysql_fetch_array in PHP

我有一个简单的连接查询,应该在foreach 循环中回显每个数组结果。数组不为空。打印数组计数有效——有 801 个结果。但是,实际上打印出foreach 上方或内部的行只会打印第一个结果。任何帮助,将不胜感激。

$listQuery = "SELECT r.email_address
            FROM wholesale_accounts a
            LEFT JOIN wholesale_register r ON r.register_id = a.register_id
            WHERE r.email_address != ''
            ORDER BY r.email_address";            
$listResult = mysql_query($listQuery);
//print_r($listResult); // prints (Resource ID #21)
//exit;

$rows = mysql_fetch_array($listResult, MYSQL_ASSOC);
$count = mysql_num_rows($listResult);
//print_r($count); // prints 801
print_r($rows); // only prints first email address
exit;

foreach($rows as $row) {
    print_r($row); // prints email address          
}

【问题讨论】:

  • 最好选择一本关于您选择的任何语言的好书或教程,而不是在这里发布这样的问题。它表明你没有注意你阅读的内容,或者你没有费心去理解事情是如何运作的。技术发展迅速,而这一项已经过时了 - 采用 PDO 或 MySQLi
  • 感谢@codingbiz。听起来您需要更多信息。我正在尝试修复一个我没有建立的旧网站。这是我的主要工作描述。如果我建立了这个站点,那将是 PDO。我已经调试了很多方法——这就是我在这里发帖的原因。不过还是谢谢你的意见。
  • 我对你说实话,伙计。几个月前我加入 SO 时,我了解到了这一事实——我们需要能够捍卫我们所知道的,以便其他人可以向我们学习并相信我们的判断。希望你的问题解决了吗? :)

标签: php mysql arrays


【解决方案1】:

mysql_fetch_array 一次获取一行,因此您需要将其放入循环中

while($rows = mysql_fetch_array($listResult, MYSQL_ASSOC))
{
   print_r($rows);
}

【讨论】:

  • A while 循环并没有完全理解它,但使用 list() 可以正常工作。这是我最终得到的结果:while (list($email_address) = mysql_fetch_row($listResult)) { echo $email_address . '<br>'; }
猜你喜欢
  • 2014-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-31
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多