• ベストアンサー

氏名をあいうえお順に並べて行ごとにボタンで表示させたい

ある住所録があり、 「あ行」のボタンを押すと、「あ」~「お」の氏名の人を表示させ、 「か行」のボタンを押すと、「か」~「こ」の氏名の人を、 「さ行」のボタンを押すと、「さ」~「そ」の氏名の人を、 同じページに表示させたいと考えています。 「あ」~「お」の氏名の人を表示させるSQLはできました。 「か」~「こ」を表示する時も同じように作成すればいいかと思いますが、それをボタンで実行させるプログラムがわかりません。 違うページであれば、違うPHPファイルを作成して、 ボタンからそこにリンクするようにいいのかと思いますが、 同じページでボタンを押すと、それぞれの行の人の一覧を表示させたいと思います。 宜しくお願い致します。 ************************************************************ 「あ」~「お」の氏名の人を表示させるプログラム ************************************************************ <?php print("<table>"); print("<tr>"); print("<td>氏名</td>"); print("<td>住所</td>"); print("</tr>"); $cont = mssql_connect("サーバ名","ユーザ名","パスワード"); mssql_select_db('DB名', $cont); $sql = "select * from テーブル名 WHERE(person LIKE N'あ%')OR(person LIKE N'い%')OR(person LIKE N'う%')OR(person LIKE N'え%')OR(person LIKE N'お%') ORDER BY person"; $rc = mssql_query($sql,$cont); while ($array = mssql_fetch_array($rc)) { print("<tr><td>"); print "[".$array["person"]."]"; print("</td><td>"); print "[".$array["address"]."]"; print("</td></tr>"); } print("</table>"); mssql_close($cont); ?> ************************************************************ 環境 PHP5.23 Apache2.2 SQLserverVersion5 SQLとPHPは別サーバになります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

hoge.php?x=a hoge.php?x=ka ... のように引数を付けたHTMLを書いて、 PHP側でその引数を見て指定された行を出力すればいいです。 if ($_GET['x']=='a') { # あ行 $sql = "select * from テーブル名 WHERE(person LIKE N'あ%')OR(person LIKE N'い%')OR(person LIKE N'う%')OR(person LIKE N'え%')OR(person LIKE N'お%') ORDER BY person"; } else if (...) { # か行 ... }

smorgas030
質問者

お礼

回答ありがとうございます。 問題なく修正できました。 ありがとうございました。 よしよければ教えてください。 hoge.php?x=a hoge.php?x=ka ↑ここと ($_GET['x']=='a') ↑ここのつながりかたがよくわかりません。 よろしければご教授ください。

その他の回答 (4)

回答No.5

関連した質問ですのでリンクしておきます。 http://okwave.jp/qa3271441.html 方法はいろいろあるのでお好みで選べるわけです。 さまざまな手法を思いつくようになればいいですね。

smorgas030
質問者

お礼

回答ありがとうございます。 ボタンのところは解決しました。 ありがとうございます。 ページ遷移がうまくできません。 とりあえずこちらは締め切らせていただきます。 ありがとうございました。

  • kiyusa
  • ベストアンサー率40% (10/25)
回答No.4

ANo.2です。 私の場合もshirayukix様と同じです。 #方法の違いに気がついていただかないと....... あっ、プルダウンメニューなら以下のような感じです。 <form action="hoge.php" method="POST"> <select name="gyo"> <option value="a">あ行 ....「か行」から「ら行」まで同じように書きます.... <option value="w">わ行 </select> <input type="submit" value="検索"> </form> で、$_POST["gyo"]の値で検索します。

回答No.3

HTML側は <a href="hoge.php?x=a">あ行</a> または <form action="hoge.php" method="GET"> <input type="hidden" name="x" value="a"> <input type="submit" value="あ行"> </form> のようにして送信するとPHPの変数$_GET['x']に文字列aが入ります。 (methodをPOSTにした場合は$_POST['x']に。) これで分からなければPHPの基礎をもっと勉強してください。 どんなプログラムを作るときも必要になる事項ですので。

参考URL:
http://www.sound-uz.jp/php/tips/gpc.html
  • kiyusa
  • ベストアンサー率40% (10/25)
回答No.2

SQL側が拡張できればもう少しスマート(楽に?)できるのですが。 SQL側に「あ行」、「か行」....等のフィールドを作ればそれをキーにして 検索ができます。 なので、画面に「あ行」、「か行」....のボタンを作った時にそのvalue値を 分ければ可能になる、と。 #あ行=a、か行=k.....とか、あ行=1、か行=2....とか。 私ならこのようにしますけど。

smorgas030
質問者

お礼

回答ありがとうございます。 早速フィールド(フィールド名:gyo、値:あ行→a、か行→k)を増やしましたが、それとボタンの結びつけかたがイメージできません。 よろしければご教授ください。

専門家に質問してみよう