プロが教える店舗&オフィスのセキュリティ対策術

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>になってしまいますが・・・

よろしくお願いします。

A 回答 (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>";
?>
    • good
    • 0
この回答へのお礼

遅くなりましたが、縦に表示できるようになりました。

配列を基礎から勉強しなおしました。

おかげで、他にも役立てそうです。

お礼日時:2008/09/02 10:32

\Gで



列1   値1
列2   値2
列3   値3

のように、1行の値を縦に表示できるのいは、MySQL Command Line Clientを使った場合などの「クライアント側のソフトウェアの仕様」の話です。

この回答への補足

回答ありがとうございます。
レンタルサーバーでは、無理ということですね。

補足日時:2008/08/18 23:59
    • good
    • 0

>$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で処理しようと思っています。
ご教授お願いします。

補足日時:2008/08/18 23:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!