• 締切済み

ページ変遷後の画面の表示方法

お世話になります。 PHPを始めて2週間ほどになります。 プロフのようなものを作りたいと思っています。 今回質問したいのは、検索フォームからMYSQLにあるデータを引き出し、結果一覧をHTMLに出力した後、リンクをクリックして詳細画面を表示するには?ということです。 MYSQLのフィールドに画像のファイル名を格納し検索後、呼び出すときに<a href="">や<img src="">で画像のみを表示させたり、事前に作ったHTMLを表示させることはできるのですが、リンクをクリックした後に定型のヘッダやフッタの間に画像や説明文を入れたり、データベースから文字を引き出して表示させる方法がわかりません。 postやgetで情報を次のページに渡して、PHPの中で生成していくのかなぁ??なんて思ったりはしたのですが、さっぱりなんです。 また、ケータイからでも表示できる内容にしたいです。 以下は作りかけのソースなのですが、検索フォームからPOSTされた文字列で検索して表示はできました。 このあとどう修正して良いのかわかりませんでした。 <html> <body> <? $id = $_POST['id']; if($id == ""){ print "検索キーワードが入力されていません。"; print "ブラウザの戻るでお戻りください。"; break; } $s = mysql_connect("*****","*****","*****") or die ("接続エラー"); mysql_select_db("*****",$s); $result = mysql_query ("SELECT * FROM test where name LIKE '%$id%'") or die ("見つかりません"); include "header.php"; while ($rows = mysql_fetch_array ($result)) { $no = $rows[0]; $name = $rows[1]; $pic = $rows[2]; $com = $rows[3]; print "<table width=\"230\" border=\"1\">"; print "<tr>"; print "<br><td width=\"70\">会員番号</td>"; print "<td width=\"144\"><a href=\"$no\">詳細</a></td>"; print "</tr>"; print "<tr>"; print "<td>ニックネーム</td>"; print "<td>$name</td>"; print "</tr>"; print "<tr>"; print "<td>画像</td>"; print "<td><a href=\"$pic\">画像リンク</a></td>"; print "</tr>"; print "<tr>"; print "<td>コメント</td>"; print "<td>$com</td>"; print "</tr>"; print "</table>"; } print "<br>"; include "footer.php"; ?> </body></html> 非常に困って次に進めない状態です。ヒントや参考になるサイト、また修正など教えていただければありがたいです。 わかりにくい文章になってしまいましたが、よろしくお願いします。

みんなの回答

  • teala
  • ベストアンサー率42% (6/14)
回答No.1

ソースを拝見しましたところ、$noがそのユーザの会員番号のようなので、 詳細画面表示用の、phpファイルを別に作成して、そちらにPOSTかGETで会員番号を渡してやればよいのではないでしょうか? 例として、detail.phpという詳細画面用のphpファイルがあった場合。 print "<td width=\"144\"><a href=\"detail.php?{$no}\">詳細</a></td>"; 上記のように、detail.phpに会員番号を渡してやり、 detail.phpの中では、"SELECT * FROM test where 会員番号 = {$no}"のような感じで、情報をMySQLから取得して表示すれば良いかと思います。 やりたいことと、回答内容に食い違いがありましたら申し訳御座いません。

momomo98
質問者

補足

お忙しいところご回答ありがとうございます。 いただいた例の print "<td width=\"144\"><a href=\"detail.php?{$no}\">詳細</a></td>"; ということなのですがPOSTで送る際に、 print "<form action=\"detail.php\" method=\"post\">"; print "<td width=\"144\"><a href=\"detail.php?{$no}\">詳細</a></td>"; print "<input type=\"submit\" value=\"詳細画面へ\">"; print "</form>"; みたいにして送ってあげないとダメなのでしょうか? 受け取る際には、もちろん$_POST['']で受けてからになりますよね?? 基本的な質問になってしまいますが、よろしくお願いします。

関連するQ&A