2012-10-01 44 views
0

可能重复:
Looping through mysql_fetch_array in PHPmysql_fetch_array只打印第一个结果

我有一个简单的连接查询应该在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   
} 
+0

这是更好地为您挑选一本好书或教程您所选择的,而不是交任何语言像这样的问题。它表明你没有注意到你阅读的内容,或者你没有去理解事情的工作方式。技术正在快速发展,这是一个很老的问题 - 拥抱PDO或MySQLi – codingbiz

+0

感谢@codingbiz。这听起来像你需要更多的信息。我正在尝试修复一个我没有构建的旧网站的碎片。这是我的主要工作描述。如果我建立了这个网站,那就是PDO。我已经调试了很多方式 - 这就是为什么我在这里发布。但是,无论如何感谢您的意见。 – deewilcox

+0

我对你的伴侣是诚实的。当我几个月前加入时,我了解到了真相 - 我们需要能够捍卫我们所知道的知识,以便其他人可以从我们那里学习并相信我们的判断。希望你解决了这个问题? :) – codingbiz

回答

3

mysql_fetch_array每次会获得一个行,所以你需要把它放在一个循环

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

'while'循环并没有完全得到它,但是使用'list()'来处理它。这是我结束了: '而(名单($ EMAIL_ADDRESS)=和mysql_fetch_row($ listResult)){\t \t \t \t回声$ EMAIL_ADDRESS。 '
'; }' – deewilcox