• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:GROUP_CONCATで条件指定)

PHPで複数の値をグループ化して表示する方法

このQ&Aのポイント
  • PHPのSQL文を使用して、複数の値をグループ化して表示する方法について解説します。
  • 現在のコードでは、複数の値が同じ場合でも全て表示されてしまうため、重複する値を除外して表示する方法を紹介します。
  • 重複する値を除外するためには、SQLのGROUP BY句を使用することで解決することができます。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

GROUP_CONCATするならGROUP BYするのが妥当かと GROUP_CONCATせずにPHP側で集計する方が条件は調整しやすいですけどね SELECT GROUP_CONCAT(CONCAT(name, ':', CAST(weight AS CHAR), 'kg') SEPARATOR '/') AS weight ,CONCAT(cast(height as char),'cm') AS height FROM ex_table GROUP BY height

hukazuo
質問者

補足

身長が同じかどうかはDBをとるときにはわからない場合、どのようにしたらいいのでしょう。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル表をHTML化

    高橋太郎 赤 佐藤太郎 白 鈴木太郎 黄 山田太郎 青 Sub convertHTML() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets(1) Dim htmlFile As String htmlFile = ActiveWorkbook.Path & "\ファイル名.html" Open htmlFile For Output As #1 Dim i, j As Long i = 1 Print #1, "<table>" Do While ws.Cells(i, 1).Value <> "" Print #1, vbTab & "<tr>"; j = 1 Do While ws.Cells(i, j).Value <> "" Print #1, "<td>" & ws.Cells(i, j).Value & "</td>"; j = j + 1 Loop Print #1, "</tr>" & vbCr; i = i + 1 Loop Print #1, "</table>" Close #1 MsgBox htmlFile & "に書き出しました" End Sub 以下が結果です。 <table> <tr><td>高橋太郎</td><td>赤</td></tr> <tr><td>佐藤太郎</td><td>白</td></tr> <tr><td>鈴木太郎</td><td>黄</td></tr> <tr><td>山田太郎</td><td>青</td></tr> </table> 下記のようにするにはどうすればよいでしょうか? <table> <tr><td>赤</td><td>高橋太郎</td></tr> <tr><td>白</td><td>佐藤太郎</td></tr> <tr><td>黄</td><td>鈴木太郎</td></tr> <tr><td>青</td><td>山田太郎</td></tr> </table> セルを書き換えた方が早いですが、名前がバラバラですし、何千行もあり、作業が大変なので、マクロを書き換えた方が早いかと思いましたので。 宜しくお願いします。

  • 表示されません(>_<)!!

    以下のように作ってみたんですけど、わたしは判定結果は四角の中に表示されるようにやったつもりだったんですけど、新しいページに「痩せてます」と表示されてしまいます。どこを直せば良いでしょう? お願いします <HTML> <HEAD> <TITLE>関数のテスト</TITLE> <SCRIPT language="JavaScript"> <!-- function test() { height = document.aaa.h.value; weight = document.aaa.w.value; himan = (height-100)*0.9; if (himan <= weight) { document.write("痩せてます。"); } else { document.write("太っています。"); } } //--> </SCRIPT> </HEAD> <BODY> <form name="aaa"> <table> <tr><td>身長</td><td><input name = "h"> </td></tr> <tr><td>体重</td><td><input name = "w"> </td></tr> <tr><td><input type="button" value ="判定" onClick = "test()" ></td></tr> <tr><td>判定結果</td><td><input name = "hi"> </td></tr> </table> </form> </BODY> </HTML>

  • テーブルタグの高さ指定

    <table> <tr><td>1</td></tr> <tr><td>2</td></tr> <tr><td>3</td></tr> </table> というHTMLの構文において、 高さ(height)を、 1=指定 2=全体-(1+3) 3=指定 として、 1+2+3=クライアント閲覧環境(画面解像度)における最大の高さとしたいのですが指定方法が分かりません。 CSSで指定するのでしょうか?

  • 繰返しを繰り返す【php】

    たとえばですが、 for($i=0; $i < 31; $i++){ $table ="<td>★</td><td>●</td>"; } echo <<<EOM <table> <tr><td>名前</td>{$table}</tr> </table> EOM; という処理を10回繰り返したい場合はどのようにしたらいいのでしょうか。 上記のプログラムを丸々whileで囲んでみたのですが、うまく表示されませんでした。

    • ベストアンサー
    • PHP
  • テーブルの大きさを揃えたい

    各ページの大きさ=高さが揃わないのですが原因がわかりません。 1.文字の高さが指定した高さより大きい?(普通の文字の高さは決まっているのでしょうか。) 2.入れ子にしているテーブルで2行の所が指定した高さより大きい? 3.CSSスタイルの背景の高さが関係している? 4.全体の大きさがずれている? 参考にHTML(高さのみ)抜き出しますので教えていただけませんか。 【ページ1】 <table width="700" height="55" border="0"> <tr> <td><img.gif height="40"> welcome homepage(見た目は2行)</td> <td> </td> <td align="right" valign="bottom"> <img.gif" height="20" ></td></tr></table> <table height="15"></table> <table height="430"> <tr><td height="375"><flash.swf height="360"></td></tr> <tr><td height="25"></td></tr> <tr><td height="15"></td></tr></table> 【ページ2】 <table width="700" height="55" border="0"> <tr> <td height="40"> <img.gif height="40"></td> <td height="40"> </td> <td height="40"></td></tr> <tr><meta http-equiv="Content-Style-Type" content="text/css"> <td height="15"> welcome homepage </td> <td height="15"></td> <td align="right" height="15">|HOME|MAP|MAIL|</td></tr></table> <table height="15"></table> <table height="430"> <tr><td> <table height="10"> <tr><td height="15"></td></tr> <tr><td><IFRAME height="380"></IFRAME></td></tr> </table></td></tr> <tr><td height="15"></td></tr></table>

  • <td>にheightの%指定が反映されない

    win2000pro,IE6.0sp1です。 <table><tr><td height=150>a</td></tr></table> なら反映されますが、 150の部分を150%とすると反映されません。 どうすれば反映されるのでしょうか?

    • ベストアンサー
    • HTML
  • オブジェクトを指定してください、のエラーについて

    HTML作業中、下記のようなエラーメッセージが表示されます。 エラー:オブジェクトを指定してください。 文字:3 コード:0 恐らく↓この辺りでエラーが起きているのだとは思うのですが… どなたか分かる方はいらっしゃいますでしょうか?それと、 ライン:200 ↑この数値は、ソースを表示させたときの行数でいいのでしょうか? メモ帳で開くと「行へ移動」ができなかったもので… 他にエラー場所を知る方法があれば教えてください。 <table width="179" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="2" align="right"><a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image46','','img/click2.gif',1)"><img src="img/click1.gif" alt="クリック!" name="Image46" width="64" height="49" border="0"></a></td> <td colspan="2" align="right"><img src="img/suga-3.gif"></td> </tr> </table> <table width="179" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="12" colspan="4"><img src="img/ue.gif" width="179" height="12"></td> </tr> <tr> <td width="14" height="124" background="img/hidari.gif"><img src="img/hidari.gif" width="14" height="7"></td> <td width="146" background="img/back.gif"><table width="145" height="110" border="0" cellpadding="0" cellspacing="0"> <tr> <td><img src="img/main1.gif" width="70" height="102" hspace="2"></td> <td valign="top" class="text12">画像</td> </tr> </table> <img src="img/botan.gif" width="146" height="17"></td> <td width="19" background="img/migi.gif">&nbsp;</td> </tr> <tr> <td height="12" colspan="4"><img src="img/sita.gif"></td> </tr></table>

  • tdのスペース(空白の状態)は「&nbsp;」で問題ないでしょうか?

    tdのスペース(空白の状態)は「&nbsp;」で問題ないでしょうか? どうやって対処するのが正しいのでしょうか? <table width="164" height="300" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="86">画像</td> </tr> <tr> <td height="21">&nbsp;</td> </tr> <tr> <td height="86">画像</td> </tr> <tr> <td height="21">&nbsp;</td> </tr> <tr> <td height="86">画像</td> </tr> </table>

    • ベストアンサー
    • HTML
  • 重複レコードをグループ化したいけど…。

    度々お世話になってます。 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[フィールド]を書き換えればいいのかな?と思いますが、検索してもそれらしいものは見当たらなかったので質問させていただきました。 心当たりのある方、よろしくおねがいします。

    • ベストアンサー
    • PHP
  • フォントや文字サイズを変えるタグを教えて下さい

    「AmigoNewsBoard」というCGIを設置したんですが、タイトルや本文などのフォントが明朝体になっていて文字サイズもちょっと小さいので変更したいんですが、どこをいじれば良いか分かりますか? # =====================記事デザイン設定======================== ########################### # 記事1件分のデザイン # ########################### sub _Html_List{ print <<EOM; <TABLE width="100%" cellPadding=0 cellSpacing=0> <TR><TD class="Title">&nbsp;<FONT class="List">■</FONT>$VD[$REC{Title}]</TD></TR> <TR><TD class="Status">&nbsp;No: $VD[$REC{DataNum}] /&nbsp;Genre: $GENRE{$VD[$REC{Genre}]}[0]&nbsp;/&nbsp;Date: $VD[$REC{Rtime}]</TD></TR></TABLE><BR> <BLOCKQUOTE class="Comment">$VD[$REC{Comment}]<BR><BR><A href="$VD[$REC{Url}]">$VD[$REC{Url}]</A></BLOCKQUOTE> EOM } ##################################### # 記事1件分のデザイン(検索結果) # ##################################### sub _Html_Search{ print <<EOM; <TABLE width="100%" cellPadding=0 cellSpacing=0> <TR><TD class="Title">&nbsp;<FONT class="List">■</FONT>$VD[$REC{Title}]</TD></TR> <TR><TD class="Status">&nbsp;No: $VD[$REC{DataNum}] /&nbsp;Genre: $GENRE{$VD[$REC{Genre}]}[0]&nbsp;/&nbsp;Date: $VD[$REC{Rtime}]</TD></TR></TABLE><BR> <BLOCKQUOTE class="Comment">$VD[$REC{Comment}]<BR><BR><A href="$VD[$REC{Url}]">$VD[$REC{Url}]</A></BLOCKQUOTE> EOM } ======================================================= 《注意書き》 HTMLエディタ等で簡単にデザインが変更できますが、以下の点には注意して下さい。 1)下記4種の行は改変したり、行中にスペースや余分な文字を入れないようにして下さい。 ※HTMLエディタによっては自動構文エラー修正等により自動的に改変される場合がある為注意が必要です。その場合は下記4行を最初にテキストエディタ等でコメント行等に置き換えて編集終了後に再び元に戻して下さい。 print <<"<!---HTML--->"; &_*****; <!---HTML---> 1; 2) $***形式の部分はスクリプトが適切な文字列に置き換えるので削除/改変しないで下さい。 3) Tabスペース・全角スペースを使用せず、半角スペースを使用して下さい。 4) @という文字を入れる場合は\@として下さい。 5) 文字化けする場合は文字化けが始まった文字の後ろに\をつけて下さい。

    • ベストアンサー
    • CGI