電子書籍の厳選無料作品が豊富!

お世話になります。

htmlからphpを呼びmysql結果を表示したいのですが
ファイル構成について教えてください。

イメージとしては、下のようなものが1ページに表示されます。
----------------
・検索条件入力域
・検索ボタン
----------------
検索結果表示域
----------------

1.検索結果には初回アクセス時に条件なしの結果が表示されます。
2.検索ボタンを押下すると、検索結果のみ再描画されます。

このような処理をしたいのですが、ファイル構成としてはどうすればよいでしょうか。
今考えているのは

main.html
-----------
検索フォーム記載 -- (1)
検索.php呼び出し(初期表示
-----------

検索.php
---------
mysqlからデータ取得し出力
---------

です。
ここでイメージができないのですが
検索ボタン押下時に呼ぶファイルは別途作成する必要がありますか?
仮に検索.phpに渡すとしたら、検索.php内にmain.htmlの(1)を記載しなくては
いけないのではと思ってます。

もっとスマートな構成があると思うので、熟練者の方ご教示お願いします。

A 回答 (2件)

> 自分自身を呼ぶというのがポイントですか?



そういう事です。
検索条件を生成する所で判定を一つ入れるだけで済むので、わざわざ分けて複数作る必要はありません。

$Sql = "select * from hoge";
if (isset($_POST['条件']) && $_POST['条件'] != '') {
$Sql .= " where key = '" . $_POST['条件'] . "'";
}
$Sql .= " order by xx";

みたいな感じでSQL文を生成するようにすれば、ひとつのロジックで対応できます。
(端折ってますがPOSTされてきた値のエスケープ処理はちゃんとやってくださいね)
    • good
    • 0
この回答へのお礼

ありがとうございました!
イメージできましたのでチャレンジしてみます。

お礼日時:2012/11/29 16:09

検索.phpひとつでいいと思います。



検索.php内で、フォームから値が送られてきたら条件付き検索、フォームから何も送られてこなければ条件なしで検索(全件出力)とすれば、処理としてはどちらも同じ流れになりますよ。

この回答への補足

ご回答ありがとうございました。

ちょっとフォーム(というか色々と)の勉強中なので違ってたら指摘お願いします。

>検索.phpひとつ
つまり、検索.php内に下記のように記載して
<HTML>
<HEAD>
</HEAD>
<BODY>
<form action="検索.php" method="post"・・・
検索条件
</form>

<?php
DB接続
検索
結果出力 等々
?>

</BODY>

という感じでしょうか?
自分自身を呼ぶというのがポイントですか?

補足日時:2012/11/29 15:39
    • good
    • 0

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