
以下の通り、歴年運動会の徒競走順位が記録されたテーブル(mytable)があります。
ID 氏名 順位 運動会開催年
1 阿藤 1 2009
2 伊藤 2 2009
3 宇藤 3 2009
4 江藤 4 2009
5 尾藤 5 2009
6 加藤 1 2010
7 木藤 2 2010
8 工藤 3 2010
9 毛藤 4 2010
ここで、次のように書けば・・・
$sql = "select * from mytable order by ID";
$con = mysql_connect(DBSERVER, DBUSER, DBPASSWORD);
$rst = mysql_query($sql, $con);
$recmax = mysql_num_rows($rst);
if ($recmax > 0) {
$body = "<ol>\n";
for ($recnum = 0; $recnum < $recmax; $recnum++) {
$col = mysql_fetch_array($rst);
$body .= "<li>$col["氏名"]\n";
}
$body .= "</ol>\n";
}
こういう箇条書きリストが得られます。
<ol>
<li>阿藤
<li>伊藤
<li>宇藤
<li>江藤
<li>尾藤
<li>加藤
<li>木藤
<li>工藤
<li>毛藤
</ol>
ここで、以下のような箇条書きスタイルにするには、どう書いたらいいでしょうか?
ifの分岐内に一工夫しなければならないことは推察できますが、
2回ループをさせる??すみません、よくロジックが整理できません。
<div>2009年運動会</div>
<ol>
<li>阿藤
<li>伊藤
<li>宇藤
<li>江藤
<li>尾藤
</ol>
<div>2010年運動会</div>
<ol>
<li>加藤
<li>木藤
<li>工藤
<li>毛藤
</ol>
No.2ベストアンサー
- 回答日時:
実際に試してませんがフロー的にはこんな感じでいけるのでは?
$sql = "select ID,氏名,運動会開催年 from mytable order by ID,運動会開催年";
$res = mysql_query($sql, $con);
$pre_nendo="";
$list ="";
while($row = mysql_fetch_array($res,MYSQL_ASSOC)){
$nendo=$row["運動会開催年"];
if($pre_nendo!==$nendo){
if($list!=="") $list.="</ol>\n";
$list.="<div>{$nendo}年運動会</div>\n";
$list.= "<ol>\n";
}
$list .= "<li>{$row["氏名"]}</li>\n";
$pre_nendo=$nendo;
}
if($list!=="") $list .= "</ol>\n";
$body.=$list;
yamabejpさん、完璧なコードをご提示くださりありがとうございました。
早速本番環境に組み込みまして、120%期待通りに動作しました。
最初にforで覚えたので、whileの使い方にあまりなれていないのですが、
こうやってやるんですね・・
正直、いくら時間をかけて考えても、わたしでは解がでなかったと思われます。
このたびは(このたび'も')、本当に助かりました。ありがとうございました。
No.1
- 回答日時:
まず年度でORDER BYが必要ですね
で、年度がかわったら別のOLを書くようにすればよいでしょう
この回答への補足
yamabejpさん、いつもお世話になります。
ご回答ありがとうございます。
>で、年度がかわったら別のOLを書くようにすればよいでしょう
ええっと、おっしゃるとおりなのでしょうが、
元質問のプログラムですと、OLがfor構文の外に出ていますよね?
そうすると、年度が変わったという判定と</OL><OL>の記述というロジックを
どう組み込んだらよいかさっぱり検討つかないのが元質問の主旨です。
ものすごい複雑な(冗長な?(^_^;)プログラムになってしまいそうな
気がするのですが・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
下記エラーメッセージ解決について
-
ループ内に任意行を差し込む処...
-
MySQLのエラー出力
-
データベースから,そのレコー...
-
セッションを使ったログインペ...
-
mysqlにあるemailへそれぞ...
-
次のエラーメッセージ検証 テ...
-
検索表示について
-
MYSQLからのarrayデータをjpgra...
-
クエリ検索でのWHERE句 HAVING...
-
PHP+MYSQLでレコードの表示させ方
-
mysql_fetch_rowが 1 を返すこ...
-
MySQLにデータが書き込まれない
-
データベースから多次元連想配...
-
テーブルにINSERTができません...
-
phpのデータベースを使用したsq...
-
phpobjectとmysqlとの連携
-
エラーが出ます。myswl
-
PHP phpMyAdmin
-
テーブルに入っているデータと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Resource id #3 をフィールドの...
-
リストから詳細画面に遷移する...
-
sqlから多次元配列に要素を格納...
-
stringaddslashes 半角¥が消える
-
PHP+MySQLでの検索結果の横並び...
-
会員登録したらメールが送られ...
-
PHPで絞り込み検索結果の件数を...
-
下記バグ("SQL:\\"$sql\\"の実...
-
「mysqlclient」の事が分からな...
-
ボタンのonclick時における関数...
-
OpenPNEのER図はありませんか
-
変数同士の引き算が出来ない
-
コメント部のエラー
-
mysqlのinsert文について、ご指...
-
SQLサーバーに接続させたい(JS...
-
DB(MySQL)から複数行のデータを...
-
PHPのSQLインジェクションはspr...
-
データベースから値の取り出し...
-
PHPからMySQLの起動について
-
SQLのif()に関して。。。
おすすめ情報