2014-06-18 18 views
-1
$q = $db->query("SELECT * FROM user"); 
    while($row = mysqli_fetch_array($q)) { 
     $product = array(); 
     $product['id'] = $row['id']; 
     $product['user'] = $row['user']; 
     $product['data'] = $row['data']; 
    } 
    $response["product"] = array(); 
    array_push($response["product"], $product); 

我一直試圖從數據庫中選擇整個表,然後循環遍歷每個結果並將其推送到數組。上面的代碼似乎只將數組放在表中的最後一項。PHP MySQLi從數據庫中選擇並推送到json

回答

2

你可能更好做這樣的事情:

$q = $db->query("SELECT * FROM user"); 
$response = array(); 
$response["product"] = array(); 
while($row = mysqli_fetch_array($q)) { 
    $product = array(
     'id' => $row['id'], 
     'user' => $row['user'], 
     'data' => $row['data'], 
    ); 
    array_push($response["product"], $product); 
} 

你只得到了最後一個項目,因爲你不斷重置$response['product'] & $product陣列。

0

您需要爲每個項目推入數組。目前,您每次都通過循環覆蓋$product。試試這個:

$q = $db->query("SELECT * FROM user"); 
$response["product"] = array(); 
while($row = mysqli_fetch_array($q)) { 
    $product = array(); 
    $product['id'] = $row['id']; 
    $product['user'] = $row['user']; 
    $product['data'] = $row['data']; 
    array_push($response["product"], $product); 
} 
相關問題