PHP+MYSQLで質問です。


$rs = mysql_query( ”SELECT hana, yomi FROM kadan WHERE tane = ’$abc’ ORDER BY yomi”, $conn );

echo ”<table border=1>”;
echo ”<tr><th>花</th><th>読み</th></tr>”;

while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC ) ){
echo ”<tr>”;
echo ”<td>” . $rec[’hana’] . ”</td>”;
echo ”<td>” . $rec[’yomi’] . ”</td>”;
echo ”</tr>”;
}

花の名前と読み方が100件程表示されるのですが、その表示結果を存在する五十音順で纏めたいです。

下のページの表示結果でOKです。
ttp://search.post.japanpost.jp/7zip/kanji2.cgi?ken=13

見出しがあって、結果が下に表示されている。
「う」から始まるものがない場合、「う」は表示されない。

どういった方法があるのかソースを書いてもらえるとありがたいです。
よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:kn1967 No.1

回答回数2915ベストアンサー獲得回数301

ポイント10pt

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k02.htm

PHP 基礎編2 - 制御構造(判定、ループ) if、switch、for、while、foreach、do - SAK Streets

$yomi1 = ””;

while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC ) ){

  $yomi_2 = mb_substr( $rec[’yomi’] ,1 ,1);

  if ($yomi2 != $yomi1) {

    echo ”<tr>”;

    echo ”<td colspan=2>” . $yomi2 . ”</td>”;

    echo ”</tr>”;

    $yomi1 = $yomi2;

  }

  echo ”<tr>”;

  echo ”<td>” . $rec[’hana’] . ”</td>”;

  echo ”<td>” . $rec[’yomi’] . ”</td>”;

  echo ”</tr>”;

}

走り書きのため動作確認していませんが、悪しからずご了承願います。

id:haring

うまく動きませんでした・・。

どこか間違っていますでしょうか?

$yomi1 = ””;

while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC ) ){

  $yomi2 = mb_substr( $rec[’yomi’] ,0 ,1);

  if ($yomi2 != $yomi1) {

    echo ””;

    echo ”” . $yomi2 . ””;

    echo ””;

    $yomi1 = $yomi2;

  }

  echo ””;

  echo ”” . $rec[’hana’] . ””;

  echo ”” . $rec[’yomi’] . ””;

  echo ””;

}

これが動いた場合、質問にあるページのようになるんでしょうか?

2006/03/06 22:46:26
id:iken_jp No.2

回答回数11ベストアンサー獲得回数0

ポイント50pt

具体的名コードはちょっと専門外なのでご容赦いただいて考え方をお知らせいたします。


kadanテーブル

|アネモネ |アネモネ |

|朝顔 |アサガオ |

|アマリリス|アマリリス|

|梅 |ウメ |

|カスミソウ|カスミソウ|

|寒桜 |カンザクラ|


(1)読みの取り纏め一覧を生成して保持しておく

SELECT Left(kadan.yomi,1) AS keyword

FROM kadan

GROUP BY Left(kadan.yomi,1);


【結果】

|keyword|

|ア|

|ウ|

|カ|


(2)上記kadanのyomiでのソート一覧を取得する。

SELECT kadan.hana,kadan.yomi,Left(kadan.yomi,1) AS keyword

from kadan order by kadan.yomi


|アネモネ |アネモネ |ア|

|朝顔 |アサガオ |ア|

|アマリリス|アマリリス|ア|

|梅 |ウメ |ウ|

|カスミソウ|カスミソウ|カ|

|寒桜 |カンザクラ|カ|


(3)(1)の一覧を出力する(yomiの目次を生成)

[ア][ウ][カ]


(4)(2)の結果をkeyword毎に区切って出力

|アネモネ |アネモネ |ア|

|朝顔 |アサガオ |ア|

|アマリリス|アマリリス|ア|

<次のセクション>

|梅 |ウメ |ウ|

<次のセクション>

|カスミソウ|カスミソウ|カ|

|寒桜 |カンザクラ|カ|

id:haring

iken_jpさん。何度もありがとうございます。

感謝です。参考にさせて頂きます。

なんとか出来そうなので、一旦〆ます。

2006/03/07 17:01:12

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません