2017-01-09 25 views
2

多個記錄,我取的記錄如下:取從PHP/MySQL的

$aResult = array(); 
$sql  = "SELECT notes FROM table WHERE user_id = '$user_id'"; 
$result = $conn->query($sql); 

while($row = mysqli_fetch_array($result)){ 
    $aResult['query_result'] = $row; 
} 

這在表中只返回最後一條記錄。我需要從sql語句返回所有記錄。

+0

** WARNING **:當使用'mysqli'你應該使用[參數化查詢(http://php.net/manual/en/mysql i.quickstart.prepared-statements.php)和['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。 **不要**使用字符串插值或連接來完成此操作,因爲您創建了嚴重的[SQL注入漏洞](http://bobby-tables.com/)。 **絕不**將'$ _POST'或'$ _GET'數據直接放入查詢中,如果有人試圖利用您的錯誤,這可能是非常有害的。 – tadman

回答

4

改變你$aResult['query_result'] = $row;$aResult['query_result'][] = $row;

你已經每一次重寫的結果,所以你只是得到一個。

+2

完美,謝謝! – Cybernetic

+1

@KrisRoofe :)簡單而完美。 +1快樂編碼。 –

1

看來你的循環會不斷覆蓋這個值,因此你只會看到最後一行。我想你可能會看到更好的結果,如果你這樣做:

while($row = mysqli_fetch_array($result)) 
{ 
    $aResult[] = $row; 
} 

使每一個新行添加到您的陣列

1

嘗試用下面的代碼,您正在啓動值相同的數組鍵:

$aResult = array(); 
$sql  = "SELECT notes FROM table WHERE user_id = '$user_id'"; 
$result = $conn->query($sql); 

while($row = mysqli_fetch_array($result)){ 
    $aResult['query_result'][] = $row; 
} 

更多的細節在Array

相關問題