• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:重複レコードをグループ化したいけど…。)

重複レコードのグループ化方法について

このQ&Aのポイント
  • 重複レコードをグループ化する方法について説明します。
  • テーブル内の重複したデータをまとめて表示する方法を解説します。
  • GROUP BY句を使用して重複レコードをグループ化することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • mr_araki
  • ベストアンサー率85% (12/14)
回答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['表示するフィールド名']; } でどうでしょうか。。

noname#65290
質問者

お礼

早速ご返答ありがとうございます。本当に助かります。 無事、理想の形に成りました。 今後のためにもこの文法の意味(?)もきちんと勉強しておこうと思います。

その他の回答 (1)

  • mr_araki
  • ベストアンサー率85% (12/14)
回答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";

noname#65290
質問者

補足

返事が遅れて申し訳ありません。 自分のデータに当てはめてみましたが、'.implode('<br>', $row).'の部分が全て Array と表示されてしまいます。(複数のデータがあるべきレコードでも、1行でArrayになっています) 自分がおかしなことをしているだけかもしれませんが、一応意見をお聞きしたいです。お願いします。

関連するQ&A