dポイントプレゼントキャンペーン実施中!

PHP5.3.3 + MySQL5でWebプログラムを勉強している者です。
現在フォームからの情報をキーにしてDBの検索結果を表示するプログラムを組んでいるのですが、検索画面(HTML)→DBへアクセス→検索結果の一覧表示というところまでは出来たのですがそこからさらに表示ボタンを使って個別の結果を表示させたいのですが今一上手い方法が思いつきません。
何か良い方法はありませんでしょうか?

下手糞な文章なのでイメージが付かないと思いますのでイメージに近いURLを張っておきます。
ttp://www.e-trader.jp/trader/contents/kaitorikensaku/kensaku.php
こちらのトレーダーさんのサイトの様な形で結果一覧→個別の結果を表示させたいのです。

どなたかアドバイスをよろしくお願いします。

A 回答 (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のデータが取得できますのでそのデータを表示してあげれば良いです。

おそらくそこがうまくいくと次に出てくるのは、そこからもどる場合の考慮です。
前画面の結果をまた表示するには検索語を保持しておく必要があります。
勉強ということですので、試行錯誤してみてください。
    • good
    • 0
この回答へのお礼

おかげさまで思い通りのプログラムを組むことが出来ました!
本当にありがとうございます。

そして仰る通り前画面へ遷移すると一覧が表示出来ない状態(一度ページの更新が必要な状態です)になってしまいます。
今は新しいウィンドウで詳細を表示させて誤魔化していますが、この辺りは自分で考えてみつつ入門サイトなどを参考にしながらやってみます。

お礼日時:2012/03/28 21:42

> 検索画面(HTML)→DBへアクセス→検索結果の一覧表示というところまでは出来た



一覧表示 -> id=888の表示ボタン -> detail.php -> DBアクセス(select * from ttt where id=888) -> 個別の結果表示

個別の結果表示をおこなうプログラムを detail.php とする
テーブルtttにidフィールドがある
888番の個別表示をする
という前提
    • good
    • 0

こんにちは。



参考サイトを見てみました。
表示ボタンを押して詳細が出るタイプでしたがこれでは駄目なのでしょうか。

うまい方法とはどのような動きを想定していますか。

または、実装の方法の質問でしょうか。

補足お願いします。

この回答への補足

遅くなりました。有り体に言ってしまうと参考サイトそのまんまの動きを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に残りの情報を含んだ詳細を表示させたいのですが可能なのでしょうか?

補足日時:2012/03/27 21:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!