人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの配列の組み方と、くり返し処理について質問があります。データベースからデータを抽出しましたが、最新のデータのみしか抽出できず、望み通りの配列が組めません。どのようにすれば、下記の例のようなデータを一つの配列にして、同じ処理をくり返し、一つの配列として組む事ができるのでしょうか?できれば下記のコードに補足したいです。ご教授ください、よろしくお願いします!
例)
Array(
Array([id]、[d_title]、[d_image]、[d_mes]、[d_date]),
Array([id]、[d_title]、[d_image]、[d_mes]、[d_date]),
Array([id]、[d_title]、[d_image]、[d_mes]、[d_date]),


)
========================================================
コード <最終的に抽出されたデータの変数名は$diarydataとしたい>
========================================================
$sql = "SELECT * FROM uploaddata ORDER BY id DESC";
$res = mysql_query($sql, $conn) or die("データ抽出エラー");

while ($diarys = mysql_fetch_array($res, MYSQL_ASSOC)){
$diarys['id'];
$diarys['d_title'];
$diarys['d_image'];
$diarys['d_mes'];
$diarys['d_date'];
break;
}

●質問者: paper-knife
●カテゴリ:ウェブ制作
✍キーワード:PHP SELECT SQL エラー コード
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kurukuru-neko
●100ポイント ベストアンサー

$data = Array();

print_r($data);

while( ... )

$data[] = Array(

'id' => $diarys['id'] ,

'd_title' => $diarys['d_title'],

'd_image' => $diarys['d_image'],

'd_mes' => $diarys['d_mes'],

'd_date'=> $diarys['d_date']

);

};

print_r($data);

foreach( $data as $key => &$value ) {

print $key . "," . $value['id'] . "," . $value['d_data'] ."\n";

};

http://jp2.php.net/manual/ja/control-structures.foreach.php

◎質問者からの返答

ありがとうございました。

全然できなくてどうしようかと思っていました。

またの機会の時にも、よろしくお願いします!


2 ● Mook
●20ポイント

下記のような感じでどうでしょうか。

array_push

========================================================
コード <最終的に抽出されたデータの変数名は$diarydataとしたい>
========================================================
$sql = "SELECT * FROM uploaddata ORDER BY id DESC";
$res = mysql_query($sql, $conn) or die("データ抽出エラー");

$diarydata = array();

while ($diarys = mysql_fetch_array($res, MYSQL_ASSOC)){
array_push( $diarydata, array( $diarys['id'], $diarys['d_title'], $diarys['d_image'], $diarys['d_mes'], $diarys['d_date'] ) );
 // break; ここで break したら、ループの初回で終了してしまいます。
}

print_r( $diarydata );
◎質問者からの返答

ありがとうございます!参考になりました。


3 ● hinaminet
●13ポイント

もしかしてと思ったのですが

$diarys['id'];

$diarys['d_title'];

$diarys['d_image'];

$diarys['d_mes'];

$diarys['d_date'];

$diarys[]['id'];

$diarys[]['d_title'];

$diarys[]['d_image'];

$diarys[]['d_mes'];

$diarys[]['d_date'];

にしたら取れたりしませんか?

while文の中で配列を上書きしてしまっているように見えます。

http://phpspot.net/php/man/php/function.mysql-fetch-assoc.html

URLはあまり意味のない参考です

◎質問者からの返答

Fatal error: Cannot use [] for reading in

のエラーが出てしまいました。。。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ