mysqlデータベースのデータをphp配列に取得する際に問題が発生しました。以下のコードを実行すると、クエリは対応する行を2回または3回フェッチします。 アップロードの名前と日付が記載されたファイルのデータベースがあります。 私は4つのファイルを持っているとします(テスト済み): File1、File2、File3、File4。 (それは場合に役立ちます) コードはエコーう:MYSQLの結果をPHP配列に入れよう
$query = $pdo_con->query("SELECT * FROM uploads WHERE active = 1 and owner = '$current_user' Order By upload_id DESC");
while($r = $query->fetch(PDO::FETCH_ASSOC)) {
$new_array[] = $r;
$new_array[$r['name']] = $r;
$new_array[$r['uploaded']] = $r;
}
foreach($new_array as $array){
echo $array['name'];
echo $array['uploaded'];
}
は、私は一度だけ、各ファイルをエコーし、正しい順序で(降順コードを持っているしたいと思います:ここで
File1 and its date
File1 and its date
File4 and its date
File2 and its date
File2 and its date
File3 and its date
File3 and its date
File4 and its date
File4 and its date
コードです(自動増分)
あなたは '$のnew_array'に' $ row'複数回追加されます。各行につき3回。あなたが一度それを表示することを期待している場合は、一度だけ追加してください。また、pdoにはすべての行を配列に取得する 'fetchAll'メソッドがあります。 –
クエリを実行すると、結果に複数の行が表示されますか? '$ new_array'を使って何もしていないのであれば、ちょうどその場所にエコーするのではなく、' fetchAll() 'を使ってループするのはなぜですか? – nerdlyist