文末のコードを実行すると、下記のような結果が得られますが、
番号 名前 性別
1 阿藤 男
2 江藤 男
3 加藤 女
4 木藤 女
5 工藤 男
行列を入れ替えた表をつくりにはどういうロジックになりますか。
番号 1 2 3 4 5
名前 阿藤 江藤 加藤 木藤 工藤
性別 男 男 女 女 女
おそらく、for文を改造するのでしょうが・・・
よろしくお願い致します。
<?php
$con = mysql_connect(SERVER, USER, PASS);
$selectdb = mysql_select_db(DB, $con);
$sql = "select * from mytable";
$rst = mysql_query($sql, $con);
$recmax = mysql_num_rows($rst);
$body = "<table border='1'><tr><th>番号</th><th>名前</th><th>年齢</th><tr>\n";
for ($i = 0; $i < $recmax; $i++) {
$col = mysql_fetch_array($rst);
$body .= "<tr>\n";
$body .= "<td>" . ($i + 1) . "</td>\n";
$body .= "<td>" . $col["name"] . "</td>\n";
$body .= "<td>" . $col["age"] . "</td>\n";
$body .= "</tr>\n";
}
$body .= "</table>\n";
mysql_free_result($rst);
$con = mysql_close($con);
?>
<HTML><BODY>
<?= $body ?>
</BODY></HTML>
No.3ベストアンサー
- 回答日時:
できるだけ、元をまねてかくとこんな感じかと。
// 番号、名前、年齢の配列を作る
for($i=0;$i<$recmax;$i++) {
$col = mysql_fetch_array($rst);
$no[$i] = $i + 1;
$name[$i] = $col["name"];
$age[$i] = $col["age"];
}
// 後はそれらをforeachで回す。
$body = "<table border='1'>\n";
// 番号
$body .= "<tr>\n";
$body .= "<td>番号</td>\n";
foreach($no as $val){
$body .= "<td>".$val."</td>\n";
}
$body .= "</tr>\n";
// 名前
$body .= "<tr>\n";
$body .= "<td>名前</td>\n";
foreach($name as $val){
$body .= "<td>".$val."</td>\n";
}
$body .= "</tr>\n";
// 年齢
$body .= "<tr>\n";
$body .= "<td>年齢</td>\n";
foreach($age as $val){
$body .= "<td>".$val."</td>\n";
}
$body .= "</tr>\n";
$body .= "</table>\n";
SNo0001さん、ご教示ありがとうございました。
元質問にあわせていただき、おかげさまで大変理解しやすいです。
foreachは配列をループ処理させるという漠然知識しか
なかったのですが使い方がよくわかりました・・・・
あと、今回は(番号、名前、年齢だけでなく)
forやforeach内に入れ子のforが入るので、
No1さんとNo2さん(SNo0001さん)のご回答で
使いやすい方を活用させていただきたいと思います。
No.2
- 回答日時:
こんな感じでやってみてはいかがですか?
<?PHP
$con = mysql_connect(SERVER, USER, PASS);
mysql_select_db(DB, $con);
$sql = "select * from mytable";
$res=mysql_query($sql);
$count=0;
while($rows = mysql_fetch_array($res,MYSQL_ASSOC)){
$count++;
$array['count'].="<td>{$count}</td>";
$array['name'] .="<td>{$rows['name']}</td>";
$array['sex'] .="<td>{$rows['sex']}</td>";
}
$table=<<<eof
<table border=1>
<tr>
<td>番号</td>
{$array['count']}
</tr>
<tr>
<td>名前</td>
{$array['name']}
</tr>
<tr>
<td>性別</td>
{$array['sex']}
</tr>
</table>
eof;
print $table;
?>
yamabejpさん、ご教示ありがとうございました。
バッチリ動作確認いたしました。
whileで次々と
問い合わせ結果を連想配列(MYSQL_ASSOC)に取り込んで
配列を形成し、一気に書き出すというわけですね。
大変参考になりました。ありがとうございました。
No.1
- 回答日時:
元質問者です。
補足です。出力したいtableは、元質問のコードですと 最大で150行×400列 になりますが
行列を入れ替えることで、400行×150列 にしたい次第です。
MySQLに登録されたアンケート回答内容を出力するのに
0をYesに、1をNoに置換したりしつつ出力しますが、
150行×400列だと、Excel2003のシートに収まりません(256列までしか扱えないので)。
なので、行列を入れ替えたい次第です。よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP+MySQLでの検索結果の横並び...
-
PHPエラーが出て困ってます
-
phpのエラーについてです
-
テーブルに入っているデータと...
-
mysqlからmysqliへの変更点
-
PHP+MYSQL IF文の初歩
-
PHP+MySQLで高速化
-
MySQLでデータベースにデータin...
-
<VB.NET>INSERT文でDBにデータ...
-
チェックボックスによる複数の...
-
PHPで[]の使い方について
-
実行時エラー3131 FROM 句の構...
-
DBで検索結果に該当するデータ...
-
SQL文が実行できません
-
VB.NET エラーになる箇...
-
LocalのNotesメールDBをVBAで参...
-
テキストボックスに入れた内容...
-
VBAをつかってクエリの情報を抽...
-
ASPでRecordCountが使用でき...
-
データベースに存在するデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DB(MySQL)から複数行のデータを...
-
Resource id #3 をフィールドの...
-
stringaddslashes 半角¥が消える
-
PHP+MySQLでの検索結果の横並び...
-
phpのエラーについてです
-
mysql_query等でレコード数を変...
-
mysqlへのデータ追加について
-
配列に値が入らない
-
PHP+mysqlでSQL文に文字数制限...
-
テーブルに入っているデータと...
-
CSVをダウンロードさせた際、CS...
-
縦に長い<table>でなく横に長い...
-
【PHP】クエリーの実行に失敗し...
-
mysqlからmysqliへの変更点
-
php+mysql sql文実行について
-
会員登録したらメールが送られ...
-
SQL文2つ実行
-
MySQL5のデータを、SQL文を使い...
-
html用とmysql用のエスケープ処...
-
ボタンのonclick時における関数...
おすすめ情報