当我在我的文件search.php中使用以下内容查询我的数据库时,它只返回它遇到的第一个结果。
$qry = "SELECT business_id FROM business WHERE zip like '%91326%'";
$rs = mysql_query($qry);
$rec = mysql_fetch_array($rs);
echo $session->showContents($rec);
showContents只是一个实用功能...
function showContents($array)
{
echo "<pre>";
print_r($array);
echo "</pre>";
}
showContents返回了这个:
Array
(
[0] => 3
[business_id] => 3
)
疯狂的是,当我在sqlbuddy中输入相同的查询时,它给了我:
business_id
3
5
6
我不知所措
答案 0 :(得分:9)
mysql_fetch_array
只提取一行。您希望多次使用它来构建包含整个结果集的数组:
$rec = array();
while(($row = mysql_fetch_array($rs)) !== FALSE) {
$rec[] = $row;
}
如果您只想要ID,请选择ID:
$rec = array();
while(($row = mysql_fetch_array($rs)) !== FALSE) {
$rec[] = $row[0];
}
答案 1 :(得分:2)
试试这个:
$qry = "SELECT business_id FROM business WHERE zip like '%91326%'";
$rs = mysql_query($qry);
while ($rec = mysql_fetch_array($rs)) {
echo $session->showContents($rec);
}
答案 2 :(得分:0)
那是因为mysql_fetch_array
只从结果集中提取了一行。
通常你会这样使用它(来自the manual):
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf("ID: %s Name: %s", $row[0], $row[1]);
}