PHPで検索結果からさらに詳細な情報を表示する方法

このQ&Aのポイント
  • PHP5.3.3 + MySQL5でWebプログラムを勉強しています。現在フォームからの情報をキーにしてDBの検索結果を表示するプログラムを組んでいますが、検索結果の一覧表示からさらに個別の結果を表示させる方法が分かりません。
  • トレーダーのサイトのように、結果一覧から個別の結果を表示させたいです。
  • 良い方法があればアドバイスをお願いします。
回答を見る
  • ベストアンサー

PHPで検索結果からさらに詳細な情報を表示させる

PHP5.3.3 + MySQL5でWebプログラムを勉強している者です。 現在フォームからの情報をキーにしてDBの検索結果を表示するプログラムを組んでいるのですが、検索画面(HTML)→DBへアクセス→検索結果の一覧表示というところまでは出来たのですがそこからさらに表示ボタンを使って個別の結果を表示させたいのですが今一上手い方法が思いつきません。 何か良い方法はありませんでしょうか? 下手糞な文章なのでイメージが付かないと思いますのでイメージに近いURLを張っておきます。 ttp://www.e-trader.jp/trader/contents/kaitorikensaku/kensaku.php こちらのトレーダーさんのサイトの様な形で結果一覧→個別の結果を表示させたいのです。 どなたかアドバイスをよろしくお願いします。

  • PHP
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.3

こんにちは。 <? while($row = mysql_fetch_assoc($result)): ?> <tr><td><?=$row['id']?></td> <td><?=$row['namae']?></td> <td><form action="syousai.php" method="POST"><input type="submit" value="表示"></td> ここまで出来ていればもう少しです。 syousai.phpで必要なのは一意となるキーですのでsyousai.phpに送信する内容に含める必要があります。 <form></form>の間に<input type="hidden" name="key" value="<?= $row['id'] ?>">を入れます。 syousai.phpでは$_POST['id']にてどのIDが選択されたかわかりますので select * from tbl_test_syousai where id='$id'; (テーブルやカラム名は置き換えてください) にて対象のIDのデータが取得できますのでそのデータを表示してあげれば良いです。 おそらくそこがうまくいくと次に出てくるのは、そこからもどる場合の考慮です。 前画面の結果をまた表示するには検索語を保持しておく必要があります。 勉強ということですので、試行錯誤してみてください。

asphalt-beach
質問者

お礼

おかげさまで思い通りのプログラムを組むことが出来ました! 本当にありがとうございます。 そして仰る通り前画面へ遷移すると一覧が表示出来ない状態(一度ページの更新が必要な状態です)になってしまいます。 今は新しいウィンドウで詳細を表示させて誤魔化していますが、この辺りは自分で考えてみつつ入門サイトなどを参考にしながらやってみます。

その他の回答 (2)

回答No.2

> 検索画面(HTML)→DBへアクセス→検索結果の一覧表示というところまでは出来た 一覧表示 -> id=888の表示ボタン -> detail.php -> DBアクセス(select * from ttt where id=888) -> 個別の結果表示 個別の結果表示をおこなうプログラムを detail.php とする テーブルtttにidフィールドがある 888番の個別表示をする という前提

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 参考サイトを見てみました。 表示ボタンを押して詳細が出るタイプでしたがこれでは駄目なのでしょうか。 うまい方法とはどのような動きを想定していますか。 または、実装の方法の質問でしょうか。 補足お願いします。

asphalt-beach
質問者

補足

遅くなりました。有り体に言ってしまうと参考サイトそのまんまの動きをPHPで組みたいです。 現在はフォームからPOSTデータを受け取って、 $namae = $_POST['namae']; $query = "SELECT * FROM tbl_test where"; $query .= namae like '%$namae%'; (中略) $result = mysql_query($query); $num_rows = mysql_num_rows($result); $message = $num_rows . "件ヒットしました"; ?> <?=$message?> <table> <caption><b>検索結果</b></caption> <?while($row = mysql_fetch_assoc($result)): ?> <tr><td><?=$row['id']?></td> <td><?=$row['namae']?></td> <td><?=$row['syurui']?></td> <td><?=$row['nedan']?></td> <?endwhile;?> </table> というように表示させています(分かり辛かったらすみません・・・ そして自分が今やりたいのは <? while($row = mysql_fetch_assoc($result)): ?> <tr><td><?=$row['id']?></td> <td><?=$row['namae']?></td> <td><form action="syousai.php" method="POST"><input type="submit" value="表示"></td> というような感じでsyousai.phpに残りの情報を含んだ詳細を表示させたいのですが可能なのでしょうか?

関連するQ&A

  • PHPで検索ボタンを押さずに検索結果を返したい

    初めて質問させていただきます。 今、独学でPHP・MySQL・HTMLを使って、 検索結果を表示する画面を作っています。 作っているプログラムは、こんな感じです。 ================================================ xxx.php ================================================ <?php ここで、入力のエラーチェック MySQLに接続 入力したコードに対応するデータを取得 ?> <html> <form action="xxx.php" method="post"> <input type="text"> <select name="XX1"></select> <select name="XX2"></select> <input type="submit" name="submit" value="検索"> </html> ================================================ このプログラムでは、テキストタイプの部分にコードを 入力し、selectの部分で各項目を選択して、 最後に検索ボタンを押すと、 エラーチェックをした後に、検索結果のデータを データベースから取得してHTMLで表示します。 毎回、検索ボタンを押すという動作を減らすため、 SELECTの部分が変わったら、 検索ボタンを押さなくても、上のPHPで記述されて いる部分の処理に飛ばす方法がないかなあと 思いまして質問しました。 イメージ的にはJavaScriptの、onchangeみたいなものなのですが、何かいい方法は ないでしょうか? 以前似たような質問があったかもしれませんが、 すみませんがよろしくお願いいたします。

    • ベストアンサー
    • CSS
  • 検索結果を2列で表示させたい

    PHP5、MySQL4、Apache2、DreamweaverMX2004を使ってリンク集を作っています。 DBからの検索結果を、現在は 1 2 3 4 と1列になっているのですが、これを 1 2 3 4 と表示させたいと思っているのですが どうしてもうまくいきません・・・。 ヒントでも教えて頂ければ幸いです。 どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • 検索結果IDの使いまわしについて

    いつもお世話になります。 MySQL+PHPでシステムを構築しております。 PHPのmysql_queryもしくはmysql_db_queryで得た結果IDを使いまわす方法はありませんか? というのも、MySQLへ同じ検索をかける必要がある場合、都度検索するより、一度検索した結果IDを使えれば楽なのですが。。。 実際にやりたい事は、PHPのwhile関数で結果ID分の繰り返し処理を行い、その後、同じ繰り返し処理を行いたいのですが、再度、検索クエリ文をmysql_queryもしくはmysql_db_queryを行わずに利用できる方法があればと考えております。宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • PHPで絞り込み検索結果の件数を表示する

    同じ質問が数多くあるようですが、どうにもうまくいかない為恐縮ですが質問させて頂きました。 私はPHPとMYSQLを使ってホームページを作成しております。 やりたいことは、DBのTBに数百ある情報をPHPで幾つかの条件で絞り込み検索をかけることで、それ自体はできたのですが、何件の結果が抽出されたかを表示することができません。 例:○○件の検索結果が表示されました。 ←こんな感じにしたいのです。 他の質問を参考に以下のように記述をしたのですがどうにもうまくいきません。 $sql ="SELECT*FROM estate WHERE 価格 BETWEEN $price1 AND $price2'"; print 'sql_num_fields( $sql ) . "\n"件の検索結果が表示されました'; どのような点が問題なのか教えていただけますでしょうか? できればソースを教えていただけると助かります。

    • ベストアンサー
    • PHP
  • PHP+MySQLでの検索結果の横並び表示について

    PHP+MySQLでデータベース作成をはじめた初心者です。 検索結果を横並びにしたかったので他ページを参考にやってみました。 横に並べられるようにはなったのですが、検索結果を横並びで、かつ、4こならべると次の行にうつる方法はどうすればいいのでしょうか? データひとつを■とすると ■■■<改行> ■■■<改行> ■■■<改行> といった感じです。 よろしくお願いいたします。 <?php $host = "localhost"; if (!$conn = mysql_connect($host, "ユーザー", "パス")){ die("MySQL接続エラー.<br />"); } mysql_select_db("データベース名", $conn); $sql = "SELECT * FROM 01_table WHERE on ='1'"; $res = mysql_query($sql,$conn); print("<tr>"); while($row = mysql_fetch_array($res)) { print("<td>".$row["■"]); print("</td>"); } mysql_free_result($res); ?> print("</tr>");

    • ベストアンサー
    • PHP
  • PHPの検索について

    現在html、PHP、MySQLを使い検索システムの作成を行っているのですが、検索をしてMySQLより所得した結果何件表示されました、という感じにしたいです。 yahooでPHPで検索すると約11,440,000,000件みたいに。 やり方が分からなく何か参考になるサイトなどがありましたら教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPで検索画面を作成していますが上手に動きません

    PHP超!初心者です。よろしくお願いいたします。 行いたい事は、 HTML上にあるドロップダウンリストから項目を選択し実行すると、一致する項目をPHPMysql DBより抽出し表形式で表示したい。です。 PHPmysql→ ユーザー名:user パスワード:passwd データベース名:dbnameテーブル名:table_nm 検索画面→kensaku.html 検索結果→kensaku.php ●kensaku.html <html> <head> <title>検索</title> </head> <body> <br> <h1>種類</h1> <br> <form action = "http://localhost/lesson/kensaku.php" method="POST"> <p> 種類:<br /> <select name="betu" style="width:200" id="search_process"> <option value="" selected="selected">一覧から選択</option> <option value="あ">あ</option> <option value="い">い</option> <option value="う">う</option> <option value="え">え</option> <option value="お">お</option> </select></p> <p>    <input type="submit" name="exec" value="検索"> </form> </body> </html> ●kensaku.php <html> <body> <? if (!$con = mysql_connect("localhost", "user", "passwd")) {    print "接続エラー" ;    exit ; } mysql_select_db("dbname", $con) $sql = "select sid, name, price, betu, area, memo from table_nm" ; $sql . = "where betu like '$betu'" ; if (!$res = mysql_query($sql)) {    print "SQLエラー<BR>" ;    exit } <table border=1> <tr> <th>NO</th><th>名前</th><th>金額</th><th>種別</th> /tr> while($row = mysql_fetch_array($res)){    <tr>    <td><?php ($row['sid']); ?></td>    <td><?php ($row['name']); ?></td>    <td><?php ($row['price']); ?></td>    <td><?php ($row['betu']); ?></td>    </tr> } </table> </body> </html> 説明不足の部分がありましたら、申し訳ございません。 よろしくご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 検索結果について

    <script type="text/javascript"> function show(out){ var body = ""; var recs = out.split("<r>"); for(var i = 0; i <recs.length - 1; i++){ body += "<table width='100' border='3'><th>あああ</th><th>いいい</th>"; body += "<tr>"; var flds = recs[i].split("<i>"); for(var j = 0; j <flds.length - 1; j++){ if(j != 5){ body += "<td>" + flds[j] + "</td>"; }else{ if(flds[1]!=""){ } } } } $("#show").html(body); } </script> html、php、MySQLで検索システムの作成を行っているのですが、検索して表示される結果が      あああ                    いいい DBのあああの検索結果1         DBのいいいの検索結果1      あああ                    いいい DBのあああの検索結果2         DBのいいいの検索結果2 となってしまうのですが、<th>のあああ、いいいを一つだけにして         あああ                    いいい DBのあああの検索結果1         DBのいいいの検索結果1 DBのあああの検索結果2         DBのいいいの検索結果2 とするにはどうすればいいでしょうか。 上のjavascriptがどのようになっているのかよく分かっていない状態です。 よろしくお願いします。

  • PHPの検索表示について

    PHP+Mysqlでプルダウンの項目を選択しただけで、別ウィンドウを開かずカラム内にDBから呼び出したデータを表示させることは可能でしょうか? プルダウンの項目をDBから呼び出して、項目選択後にボタンを押して表示することは出来たのですが、項目を選んだだけでできるのであれば、どうぞご指導ください。よろしくお願い致します。

    • 締切済み
    • PHP
  • 検索結果がない時の信号の取り方を教えてください

    MySQLで検索結果がない場合の表記方法で、何もないと、検索結果が表示されないで終わりです。 検索結果がないときに、”検索結果のデータは存在しません”というような表示にしたいと思っています。 検索結果がある、ないの信号の取得方法を教えてもらえると幸いです。 ちなみに、PHP5+MySQL4.1.22で作成中です。 よろしくお願いします。

    • ベストアンサー
    • MySQL

専門家に質問してみよう