php foreach不迭代

时间:2015-05-15 15:07:42

标签: php mysql foreach

$email是数据库中表的名称。当我在phpmyadmin中执行mysql查询时,我正确地得到两个casenum s,1和3.

但是,当我尝试遍历数组时,echo $caseNum."<br>";打印

1 
1

而不是

1
3

代码:

$_SESSION['caseNums'] = mysql_fetch_array(mysql_query("SELECT `casenum` FROM `$email`"));
$_SESSION['cases'] = array();

foreach($_SESSION['caseNums'] as $caseNum) {
echo $caseNum."<BR>";
}

1 个答案:

答案 0 :(得分:1)

这是可以预料的。 mysql_fetch_array()会从您的查询中返回 SINGLE 数据行,并带有双字符串+整数键。

换句话说,您只打印从第一行数据中检索到的值,并将其打印两次,因为它在返回的数组中是重复的。

你需要:

$result = mysql_query(...) or die(mysql_error());
while($row = mysql_fetch_row($result)) {
   $_SESSION['caseNums'][] = $row[0];
}