2016-11-21 19 views
-5

問題 我有一組數據正在通過選擇每個數據集並逐行輸出它們來輸出。將SQL行變成數組

問題 有沒有獲取這個數據,並把它作爲,我就能夠到了轉成組字符串值數組的方法是什麼?

$sql = "SELECT * FROM respondent_data WHERE respondent_firstname = 'John'"; 
$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 

    while($row = mysqli_fetch_assoc($result)) { 

    $categoriesTest[] = $row["respondent_sdo"]; 
    $row["respondent_dcto"]; 
    $row["respondent_ed"]; 
    $row["respondent_ca"]; 
    $row["respondent_dhpt"]; 
    $row["respondent_irt"]; 
    $row["respondent_gl"]; 
    $row["respondent_il"];  

     // Turn my output into an array ready to be used for the JSON string 

    } 

} 

因此,每個這些值的輸出從我需要它們的列行的整數被接通到一個數組,如:2,4,3,5 ....

+1

這裏應該是什麼樣的期望輸出? – Maximus2012

+3

沒有「逗號分隔數組」之類的東西。但如果你想創建一個逗號分隔的字符串:try * implode()*。如果您想從結果中創建一個數組,請考慮這一點:* $ row *已經是一個數組。 –

+0

@ Maximus2012所以我只需要這些行輸出到一個數組,所以我可以使用它作爲我的圖表數據集它會變成一個JSON格式的數據串 – PhpDude

回答

0

如果只想從MySQL的電話查詢所有列具體的關聯性,只是將它們設置在一個陣列各自的屬性:

$categoriesTest = array(); 
$sql = "SELECT * FROM `respondent_data` WHERE `respondent_firstname` = 'John'"; 
$result = mysqli_query($conn, $sql); 
while($row = mysqli_fetch_assoc($result)) { 
    $categoriesTest[] = array(
     'respondent_sdo' => $row['respondent_sdo'], 
     'respondent_dcto' => $row['respondent_dcto'], 
     'respondent_ed'  => $row['respondent_ed'], 
     'respondent_ca'  => $row['respondent_ca'], 
     'respondent_dhpt' => $row['respondent_dhpt'], 
     'respondent_irt' => $row['respondent_irt'], 
     'respondent_gl'  => $row['respondent_gl'], 
     'respondent_il'  => $row['respondent_il'] 
    ); 
} 
$categoriesTest = json_encode($categoriesTest); // get JSON 

不過,如果你想保持所有列查詢,但創建您想要使用的自定義元素array_merge

$categoriesTest = array(); 
$sql = "SELECT * FROM `respondent_data` WHERE `respondent_firstname` = 'John'"; 
$result = mysqli_query($conn, $sql); 
while($row = mysqli_fetch_assoc($result)) { 
    $categoriesTest[] = array_merge($row, array(
     'custom_value_1' => 'test', 
     'custom_value_2' => 'test2' 
    )); 
} 
$categoriesTest = json_encode($categoriesTest); // get JSON 
0

這應該是訣竅。

$sql = "SELECT * FROM respondent_data WHERE respondent_firstname = 'John'"; 
$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 

    $i=0; 
    while($row = mysqli_fetch_assoc($result)) { 

    $categoriesTest[$i]["respondent_sdo"] = $row["respondent_sdo"]; 
    $categoriesTest[$i]["respondent_dcto"] = $row["respondent_dcto"]; 
    $categoriesTest[$i]["respondent_ed"] = $row["respondent_ed"]; 
    $categoriesTest[$i]["respondent_ca"] = $row["respondent_ca"]; 
    $categoriesTest[$i]["respondent_dhpt"] = $row["respondent_dhpt"]; 
    $categoriesTest[$i]["respondent_irt"] = $row["respondent_irt"]; 
    $categoriesTest[$i]["respondent_gl"] = $row["respondent_gl"]; 
    $categoriesTest[$i]["respondent_il"] = $row["respondent_il"];  

    $i++; 

    } 

    var_dump($categoriesTest); 

} 
+2

$ categoriesTest [] = $ row; 確實是一樣的東西...... –

+0

@AneesSaban是的;)但如果我們不需要數組鍵,爲什麼不使用mysqli_fetch_row? –

+0

你知道$ categoriesTest [] = $ row;將保持數組鍵,對吧?否則我不明白你的觀點。 :P –