- ベストアンサー
mysql - 出力を縦表示
mysql - 出力を縦表示にしたいのです。 $sql = "SELECT * FROM tensudb where kokugo >= 90 ORDER BY kokugo DESC,suugaku DESC,eigo DESC"; 上記を $sql = "SELECT * FROM tensudb where kokugo >= 90 ORDER BY kokugo DESC,suugaku DESC,eigo DESC" \G とすればよいとありましたが、エラーがでて表示できません。 どこがいけないかご教授ください。 また、結果表示する際の項目をどのように組めばよいかも教えていただけると幸いです。 普通だと 国語 数学 英語 Cクン 97 74 80 Bクン 95 34 80 Aクン 93 40 79 Sクン 92 80 60 表示されると思いますが、以下のように表示させたいのです。 Cクン Bクン Aクン Sクン 国語 97 95 93 92 数学 74 34 40 80 英語 80 80 79 60 国語、数学、英語のソースの書き方もお願いします。 <table> <tr><td>国語</td></tr> <tr><td>数学</td></tr> <tr><td>英語</td></tr> </table>になってしまいますが・・・ よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 SQL側でやるのはちょっと工夫が必要なのでPHP側の処理の例を。 とりあえずSQLから$listという形でデータを吸い上げたとします。 <? $list=Array( 0=>Array("氏名"=>"Cクン","国語"=>97,"数学"=>74,"英語"=>80) ,1=>Array("氏名"=>"Bクン","国語"=>95,"数学"=>34,"英語"=>80) ,2=>Array("氏名"=>"Aクン","国語"=>93,"数学"=>40,"英語"=>79) ,3=>Array("氏名"=>"Sクン","国語"=>92,"数学"=>80,"英語"=>60) ); //普通の表示 $str=""; $str.="<tr><th>氏名</th><th>国語</th><th>数学</th><th>英語</th></tr>"; foreach($list as $row){ $str.="<tr><td>{$row["氏名"]}</td><td>{$row["国語"]}</td><td>{$row["数学"]}</td><td>{$row["英語"]}</td></tr>"; } print "<table border>{$str}</table>"; //縦横入れ替え表示 foreach($list[0] as $key=>$val){ $rows[$key].="<th>{$key}</th>"; } foreach($list as $row){ foreach($row as $key=>$val){ $rows[$key].="<td>{$val}</td>"; } } $str=""; foreach($rows as $val){ $str.="<tr>{$val}</tr>"; } print "<table border>{$str}</table>"; ?>
その他の回答 (2)
- chukenkenkou
- ベストアンサー率43% (833/1926)
\Gで 列1 値1 列2 値2 列3 値3 のように、1行の値を縦に表示できるのいは、MySQL Command Line Clientを使った場合などの「クライアント側のソフトウェアの仕様」の話です。
補足
回答ありがとうございます。 レンタルサーバーでは、無理ということですね。
- yambejp
- ベストアンサー率51% (3827/7415)
>$sql = "SELECT * FROM tensudb where kokugo >= 90 ORDER BY kokugo DESC,suugaku DESC,eigo DESC"; >上記を >$sql = "SELECT * FROM tensudb where kokugo >= 90 ORDER BY kokugo DESC,suugaku DESC,eigo DESC" \G >とすればよいとありましたが、エラーがでて表示できません。 まずこれはPHPで処理をするのでしょうか? PHPのセミコロンを¥Gに変更することはできません。 MySQLのセミコロンと混同しています。 そもそも上の方のSQLで十分なのになんのために下のように書き換えようと おもったのでしょうか・・・ 縦表示うんぬんのところは処理はPHPでよいのですか? MySQLの範疇ではないので、なにをつかってプログラムするかを 提示すべきです
補足
ご指摘ありがとうございます。 PHP+MySQLになります。 >縦表示うんぬんのところは処理はPHPでよいのですか? はい。PHPで処理しようと思っています。 ご教授お願いします。
お礼
遅くなりましたが、縦に表示できるようになりました。 配列を基礎から勉強しなおしました。 おかげで、他にも役立てそうです。