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

MySQL4.1に格納されているテーブルから情報を取り出し、PHPを使用してブラウザに表示したいのですが以下のような場合はどうしたらよいのでしょうか

■テーブルA
order_id | goods_id | user_id | date
-----------------------------------------
1 | 1 | 1 |20070520
1 | 2 | 1 |20070520
1 | 3 | 1 |20070520
2 | 1 | 2 |20070521

上記のテーブルから値を取り出し、

date | user_id | goods_id
---------------------------
20070520| 1 |1,2,3
20070521| 2 |2

のようにブラウザに表示したいです。
ポイントとしてはorder_id 1つにつき1行で表示したいという点になります、また表示する順番は日付の新しい順で表示したいです、ですのでこの場合に必要なSQL文とPHPのソースを示していただければと思います

どんぴしゃ、かつ具体的な回答を一番最初にいただけた方に200ポイント差し上げます

よろしくお願いします

●質問者: jayz
●カテゴリ:ウェブ制作
✍キーワード:PHP SQL どんぴしゃ ソース ブラウザ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● stephanie
●200ポイント

テーブル名をordersと仮定していますがこんな感じでしょうか

<?php
$host = '127.0.0.1';
$user = '';
$pass = '';
$name = '';
$dp = @mysql_pconnect($host, $user, $pass);
mysql_select_db($name);

$query = "SELECT date, user_id, GROUP_CONCAT(goods_id) AS goods FROM orders GROUP BY date, user_id ORDER BY date DESC;";
$result = mysql_query($query, $dp);
echo "date|user_id|goods_id<br />";
while ($row = mysql_fetch_assoc($result)) {
 echo $row['date'] . '|' . $row['user_id'] . '|' . $row['goods'] . '<br />';
}
?>

実行結果は

date|user_id|goods_id
2007-05-21|2|1
2007-05-20|1|1,2,3

になります。

データベース構造はこんな感じです。

CREATE TABLE `orders` (
 `order_id` int(11) NOT NULL,
 `goods_id` int(11) NOT NULL,
 `user_id` int(11) NOT NULL,
 `date` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `orders` (`order_id`, `goods_id`, `user_id`, `date`) VALUES 
(1, 1, 1, '2007-05-20'),
(1, 2, 1, '2007-05-20'),
(1, 3, 1, '2007-05-20'),
(2, 1, 2, '2007-05-21');

http://q.hatena.ne.jp/1179616967

◎質問者からの返答

詳しく回答ありがとうございます

ずばりです

関連質問


●質問をもっと探す●



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