好的,我有以下代码:
$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?
感谢您的帮助。
答案 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等等)
我希望它有所帮助:)