2012-03-10 88 views
-1

快速的問題......我的SQL查詢吐出此數據...PHP SQL,查詢返回的數據只有一行

Array ([id] => 1 [name] => Test Name [text] => This is text [image] => image.jpg) 

當有兩行數據,是有什麼錯我的php代碼?

$query = "SELECT id, name, text, image FROM categories"; 
    $results = mysql_query($query, $connection); 
    $results = mysql_fetch_assoc($results); 

回答

2

mysql_fetch_assoc一次獲取一行。您需要遍歷所有的結果集:

while(false !== ($row = mysql_fetch_assoc($results))){ 
    [handle $row here] 
} 

從文檔(搜索是你的朋友):

返回一個字符串的關聯數組對應於提取行,或FALSE如果有沒有更多的行。

如果結果的兩列或多列具有相同的字段名稱,則最後一列優先。要訪問同名的其他列,您需要使用mysql_fetch_row()或添加別名來訪問帶有數字索引的結果。請參閱關於別名的mysql_fetch_array()描述示例。

乾杯

+0

感謝Madbreakers對你的幫助 – user979331 2012-03-10 05:40:13

+0

「謝謝」是好的,但你可能會想贊成票,你發現有幫助的任何答案,並接受你認爲最好的答案是你的問題。 – Madbreaks 2012-03-10 05:41:22

1

提取函數一次只返回一行。如果你想所有的行,你必須使用一個循環:

while($row = mysql_fetch_assoc($results)) { 
    ... do stuff with $row 
} 
+0

感謝馬克B中你幫助 – user979331 2012-03-10 05:39:55