mysql_fetch_array只返回一行

时间:2011-08-09 18:49:20

标签: php mysql fetch

好的,我有以下代码:

$array = mysql_query("SELECT artist FROM directory WHERE artist LIKE 'a%' 
        OR artist LIKE 'b%' 
        OR artist LIKE 'c%'");
    $array_result= mysql_fetch_array($array);

然后,当我尝试回显内容时,我只能回显$array_result[0];,它会输出第一项,但如果我尝试回显$array_result[1];,我会得到一个未定义的偏移量。

然而,如果我通过PHPMyAdmin运行上述查询,它将返回10个项目的列表。为什么这不被识别为10个项目的数组,允许我回显0-9?

感谢您的帮助。

3 个答案:

答案 0 :(得分:19)

那是因为数组在返回的结果集中表示一行。您需要再次执行mysql_fetch_array() function以获取下一条记录。例如:

while($data = mysql_fetch_array($array)) {
  //will output all data on each loop.
  var_dump($data);
}

答案 1 :(得分:4)

您应该使用while来获取所有数据。

$array_result = array();
while ($row = mysql_fetch_array($array, MYSQL_NUM)) {
    $array_result[] = $row;
}
echo $array_result[4];

答案 2 :(得分:1)

我更喜欢使用此代码:

$query  = "SELECT artist FROM directory WHERE artist LIKE 'a%' 
        OR artist LIKE 'b%' 
        OR artist LIKE 'c%'";           
$result = mysql_query($query) or die(mysql_error());


while(list($artist) = mysql_fetch_array($result))
{
echo $artist;
}

如果您在查询中添加更多字段,只需将更多变量添加到列表($ artist,$ field1,$ field2等等)
我希望它有所帮助:)