- ベストアンサー
PHPで検索結果からさらに詳細な情報を表示する方法
- PHP5.3.3 + MySQL5でWebプログラムを勉強しています。現在フォームからの情報をキーにしてDBの検索結果を表示するプログラムを組んでいますが、検索結果の一覧表示からさらに個別の結果を表示させる方法が分かりません。
- トレーダーのサイトのように、結果一覧から個別の結果を表示させたいです。
- 良い方法があればアドバイスをお願いします。
- みんなの回答 (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のデータが取得できますのでそのデータを表示してあげれば良いです。 おそらくそこがうまくいくと次に出てくるのは、そこからもどる場合の考慮です。 前画面の結果をまた表示するには検索語を保持しておく必要があります。 勉強ということですので、試行錯誤してみてください。
その他の回答 (2)
- honoka-cha
- ベストアンサー率54% (40/73)
> 検索画面(HTML)→DBへアクセス→検索結果の一覧表示というところまでは出来た 一覧表示 -> id=888の表示ボタン -> detail.php -> DBアクセス(select * from ttt where id=888) -> 個別の結果表示 個別の結果表示をおこなうプログラムを detail.php とする テーブルtttにidフィールドがある 888番の個別表示をする という前提
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 参考サイトを見てみました。 表示ボタンを押して詳細が出るタイプでしたがこれでは駄目なのでしょうか。 うまい方法とはどのような動きを想定していますか。 または、実装の方法の質問でしょうか。 補足お願いします。
補足
遅くなりました。有り体に言ってしまうと参考サイトそのまんまの動きを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に残りの情報を含んだ詳細を表示させたいのですが可能なのでしょうか?
お礼
おかげさまで思い通りのプログラムを組むことが出来ました! 本当にありがとうございます。 そして仰る通り前画面へ遷移すると一覧が表示出来ない状態(一度ページの更新が必要な状態です)になってしまいます。 今は新しいウィンドウで詳細を表示させて誤魔化していますが、この辺りは自分で考えてみつつ入門サイトなどを参考にしながらやってみます。