ここにいくつかのコード、mysqlクエリの結果をphpで配列に保存したいのですが、私のコードは結果を返します:2h
、私が望むものではありません。(正しい結果は36,35,34,33,32でなければなりません)
<?php
set_time_limit(59);
mysql_select_db("mycoon",$db);
mysql_query("SET NAMES utf8");
$result = mysql_query("SELECT id,link FROM mytable Order By id DESC LIMIT 0,5");
$new_array[] = $row;
while ($row = mysql_fetch_array($result)) {
$new_array[$row['id']] = $row;
$new_array[$row['link']] = $row;
}
mysql_close($db);// close mysql then do other job with set_time_limit(59)
foreach($new_array as $array){
echo $array['id'].'<br />';
echo $array['link'].'<br />';
}
?>
結果:
36
http://localhost/img/img36.jpg
36
http://localhost/img/img36.jpg
35
http://localhost/img/img35.jpg
35
http://localhost/img/img35.jpg
34
http://localhost/img/img34.jpg
34
http://localhost/img/img34.jpg
33
http://localhost/img/img33.jpg
33
http://localhost/img/img33.jpg
32
http://localhost/img/img32.jpg
32
http://localhost/img/img32.jpg
私はあなたがこれをやりたかったと思う:
while( $row = mysql_fetch_assoc( $result)){
$new_array[] = $row; // Inside while loop
}
または、キーとしてidを保存することもできます
$new_array[ $row['id']] = $row;
2番目の方法を使用すると、$new_array[ 5]
などのように、IDによって行を直接アドレス指定できます。
Mysql_fetch_arrayの代わりにmysql_fetch_assocを使用します
これはどうですか:
while ($row = mysql_fetch_array($result))
{
$new_array[$row['id']]['id'] = $row['id'];
$new_array[$row['id']]['link'] = $row['link'];
}
リンクとIDを取得するには:
foreach($new_array as $array)
{
echo $array['id'].'<br />';
echo $array['link'].'<br />';
}