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回まで
  • 登録:2006/03/06 21:26:16
  • 終了:--

回答(2件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012006/03/06 21:45:35

ポイント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

iken_jp回答回数11ベストアンサー獲得回数02006/03/07 00:13:13

ポイント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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません