

度々お世話になってます。
table1
【ID|フィールド1】
[1|AAA]
[1|BBB]
[2|CCC]
[3|DDD]
[3|EEE]
[3|FFF]
というようなテーブルがあるとして、クエリでは
<table>
<tr><td>1</td><td>AAA<br>BBB</td></tr>
<tr><td>2</td><td>CCC</td></tr>
<tr><td>3</td><td>DDD<br>EEE<br>FFF</td></tr>
</table>
…という形で表示したいのです。(理想です)
今までいろいろ試してみて、
$sql = " SELECT ID,フィールド FROM table1 GROUP BY ID ";
に行き着きましたが、これだと
<table>
<tr><td>1</td><td>AAA</td></tr>
<tr><td>2</td><td>CCC</td></tr>
<tr><td>3</td><td>DDD</td></tr>
</table>
というように表示され、表示されないレコードが出来てしまいます。
GROUP BYが余計!と言われそうですが、同じIDが複数並ぶのを避けたいのです。
ソースコードは、
print "<table>\n";
print "<tr><th>ID</th><th>フィールド</th></tr>\n";
while( $row = mysql_fetch_array($result) ) {
print "<tr><td>$row[ID]</td><td>$row[フィールド]</td></tr>\n";
}
print "</table>\n";
になっている状態です。
$row[フィールド]を書き換えればいいのかな?と思いますが、検索してもそれらしいものは見当たらなかったので質問させていただきました。
心当たりのある方、よろしくおねがいします。
No.2ベストアンサー
- 回答日時:
ですよね
ごめんなさい
implode('<br>', $row)
の$rowも2次元の配列になっちゃっているので
以下を修正
while ($row = mysql_fetch_assoc($query))
{
if ( !isset( $rows[$row['ID']] ) ) {
$rows[$row['ID']] = array();
}
//ここに表示するデータを文字列として入れる。
$rows[$row['ID']][] = $row['表示するフィールド名'];
}
でどうでしょうか。。
早速ご返答ありがとうございます。本当に助かります。
無事、理想の形に成りました。
今後のためにもこの文法の意味(?)もきちんと勉強しておこうと思います。
No.1
- 回答日時:
SQLはGROUP BYなしで普通に取得
あとはテーブルを書き出すときにちょい工夫を
$query = mysql_query($sql);
$rows = array();
//同じIDのDB行を配列にまとめます
while ($row = mysql_fetch_assoc($query))
{
if ( !isset( $rows[$row['ID']] ) ) {
$rows[$row['ID']] = array();
}
$rows[$row['ID']][] = $row;
}
print_r($rows);//1回中身を確認すると勉強になると思います。
//テーブル書き出し
print "<table>\n";
print "<tr><th>ID</th><th>フィールド</th></tr>\n";
foreach ($rows as $id => $row)
{
print '<tr><td>'.$id.'</td><td>'.implode('<br>', $row).'</td></tr>'."\n";
}
print "</table>\n";
この回答への補足
返事が遅れて申し訳ありません。
自分のデータに当てはめてみましたが、'.implode('<br>', $row).'の部分が全て
Array
と表示されてしまいます。(複数のデータがあるべきレコードでも、1行でArrayになっています)
自分がおかしなことをしているだけかもしれませんが、一応意見をお聞きしたいです。お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
PHPで画像の渡しが上手く行きま...
-
php ラジオボタン
-
ログイン機の付きの掲示板サイ...
-
【PHP/MySQL】コード上で生成...
-
ここでの ②if($su_d<>"")の比較...
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
phpのheader("Location:#pos")...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
dbに登録したデータをphpのプル...
-
DBで検索結果に該当するデータ...
-
アラートでyes noを作りたいです。
-
PHPの画像表示関連(?)プログラ...
-
データの取得方法
-
配列で指定した値のみをMySQLか...
-
警告を出さないコードの書き方
-
PHPで[]の使い方について
-
ループ文で呼び出したデータの...
-
DBからSelectしたレコードのデ...
-
mySQLで結果が無いときの処理
-
データベースのページング出力...
-
PHP セレクトメニューの呼び出...
-
PHP 10件表示 "前へ" "次へ"
-
mySQLからデータを取り出す
-
データベースサーバーにあるデ...
-
PHPのプルダウンメニューにDBの...
-
mysql>PHPにデータ表示、10件ご...
-
テーブル<TR></TR>の処理について
-
php テーブルが作成できない
おすすめ情報