2017-07-26 35 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私は、私がそれを必要とするように配列を作成する方法は?

多くのことに感謝します。

+0

あなたのコードが失敗したIDを持つレコードの列の記述のデータであるあからさま*。あなたはエラーをチェックする必要があり、それは*間違って何が起こったかをあなたに伝えます*。 –

答えて

1

ここでは配列を作成していません。あなたのループでは、私が推論できない文脈であなたが投稿したいくつかの変数を単に変更しています。

この一切のデータのフィルタリングは行いません、あなたが必要とするすべて、場合:

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

[]基本的にPHPで「追加」、それは醜いメカニズムですが、それは動作します。 (私が思うあなたのケースでid

主キーごとの行にアクセスする場合は、単に[$row["id"]]

+0

私はコードとAPIをもう一度見てみましょう。 –

+0

@ Fred-ii-あなたはmysql(i)の部分ですか?両方のAPIを正常に使用することをお勧めしますが、それは彼の質問ではありません。 –

+0

* "両方のAPIを通常使うのは止めたい" * - 種類は...しかし、ここにあるのは、mysql_piが他のAPIと混在しないということです。 * "それは彼の質問ではありません" * - いいえ、それは問題の一部です。 –

-1

[]を置き換える私は最後の正確にわからないんだけど、あなたが探している結果。しかし、$ row ['column']のような結果にアクセスしたい場合、 'column'はMySQLデータベースのカラム名であるため、mysql_fetch_assocを使用する必要があります。私は、この例では、役立つと思う:

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

$ V [1] [ '説明']は*、= 1

+0

これは動作しません、私はあなたがそれを認識し、彼らのクエリのAPIを見て願っています。 –

+0

さらに、ループの周りに追加された '()'の使用を削除する必要があります。 –

+0

もちろん動作します。それは他の答えの一部としてここにも言及されています。余分なカッコは、if文で代入を実行することを確認することです。 if(a = 3)は警告を生成します。 if((a = 3))は実行されません。 – swmcdonnell

関連する問題