簡體   English   中英

mysql_fetch_array 只返回一行

[英]mysql_fetch_array return only one row

好的,我有以下代碼:

$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?

謝謝您的幫助。

這是因為數組代表返回結果集中的一行。 您需要再次執行mysql_fetch_array() function以獲得下一條記錄。 例子:

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

您應該使用while來獲取所有數據。

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

我更喜歡使用此代碼:

$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;
}

如果您在查詢中添加更多字段,只需將更多變量添加到list($artist,$field1,$field2, etc...)
我希望它有幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM