2017-07-26 254 views
0

我認爲我可能會嘗試幾乎沒有睡眠的事情,但我在創建MySQL查詢數組時遇到問題。我有一個查詢,像這樣:從MySQL創建PHP數組

$result = mysqli_query($con,"SELECT * FROM vehicles ORDER BY id"); 
while($row = mysqli_fetch_array($result)) { 
    $description = $row['description']; 
    $description = strtoupper($description); 
    $id = $row['id']; 
} 

我想它來創建這樣一個數組:

$v[1] = "Myarray1"; 

我都試過,但它不工作:

$v[ $row['id']] = $row; 

我是否必須這樣查詢:

while($row = mysql_fetch_assoc($result)){} 

if if我知道,我是如何根據需要創建陣列的?

非常感謝提前

+0

您的代碼記錄的數據失敗,*徹底*。你需要檢查錯誤,它會告訴你*完全*出了什麼問題。 –

回答

1

在這裏你沒有創建一個數組。在你的循環中,你只是簡單地修改你發佈的上下文中的一些變量,我無法推理。

如果你需要的,這無論如何沒有數據過濾就可以了:在PHP

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

[]基本上「追加」,這是一個醜陋的機制,但它的工作原理。

如果要訪問每個主鍵列(id你的情況,我認爲),那麼只需用[$row["id"]]

+0

我想再看看他們的代碼和使用的api。 –

+0

@ Fred-ii-你的意思是mysql(i)部分?我不鼓勵通常使用這兩種API,但這不是他的問題。 –

+0

*「我不鼓勵使用這兩個API通常」* - 有點......但是,這裏的事情是'mysql_' api不能與其他任何東西混合。 *「但這不是他的問題」* - 不,但這是問題的一部分。 –

-1

更換[]我不能完全肯定導致你正在尋找結束。但是,如果您想以$ row ['column']的形式訪問結果,其中'column'是MySQL數據庫中的列名,那麼您需要使用mysql_fetch_assoc。我覺得這個例子可以幫助:

while (($row = mysqli_fetch_assoc($result))) { 
    $v[$row['id']] = $row; 
} 

$ V [1] [ '說明']是列描述了一個id = 1個

+0

這是行不通的,我希望你能意識到這一點,並看過他們的查詢API。 –

+0

加上循環中添加的'()'的使用應該被刪除。 –

+0

當然,它的工作原理。它也被提及作爲其他答案的一部分。額外的括號用於確認您想要在if語句中進行分配。如果(a = 3)會產生警告。如果((a = 3))不會。 – swmcdonnell