• 締切済み

phpを使用してweb上でデータベース検索

プログラミング初級者です。 phpのweb上でのデータベース検索プログラムを作りたいのですがうまく機能しません。 材料名を入力するとその材料を使用した料理名が出てきてその結果にリンクを張り詳細ページに飛ぶというものを作りたいのですが、検索プログラムの組み方が分かりません。データがすべて出てきてしまいます。 どうしたらよいのでしょうか。 データベース名:DB1 テーブル1:z_n(中身…材料コード.z_c、材料名.z_n) テーブル2:r_n(中身…料理コードr_c、料理名r_n) テーブル3:r_zn(中身…料理コード、材料コード、材料の量z_r、材料の単位z_t、人数z_n) <!DOCTYPE html> <?php if(empty($_POST)){ echo"処理終了"; exit;} session_start(); ?> ー省略ー <section> <h1>&nbsp;</h1> <article> 検索結果<br> <?php $dbtype="mysql"; $sv="localhost"; $dbname="DB1"; $user="kk"; $pass="himitu"; $dsn = "$dbtype:dbname=$dbname;host=$sv"; $conn = new PDO($dsn, $user, $pass); $seach = $_POST["seach_key"]; $sql = " SELECT * FROM z_n, r_zn,r_n where (z_n.z_c = r_zn.z_c) and (r_zn.r_cd = r_n.r_c);"; $stmt = $conn -> prepare($sql); $stmt -> execute(); while($row=$stmt->fetch()){ echo "<br>{$row["z_n"]}{$row["r_n"]}"; } ?> <?php } ?> ー省略ー select文があいまいで困っています。どうかよろしくお願いします

みんなの回答

noname#244856
noname#244856
回答No.2

3サイトにマルチポストですか(汗 もう解決されたようですが、一応参考リンク貼っておきます。PDOを使うならばマニュアルに加えて一度は目を通していただきたい記事です。 Qiita - PHPでデータベースに接続するときのまとめ http://qiita.com/mpyw/items/b00b72c5c95aac573b71

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

(相互リンク) http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14119841019 同じことしか書きません(というかこちらもコピペww) ---------------------------------------------------- prepareなのにプレースホルダがないと思ったら >select文があいまいで困っています。 とりあえず、どういうSQL文を実行したいのかがわかりません。入力するのは材料名の一部ですよね? select r_n.*, z_n.z_n from r_n left join r_zn on r_n.r_c = r_zn.r_c join z_n on r_zn.z_c = z_n.z_c where z_n.z_n like '%入力した材料名%'; といったSQL文をphpMyAdminででも投げて期待した結果セットが得られるかを試してください(phpスクリプトを書くのは「それから」です)。 なお、MySQLであればDSNにcharsetを含めるようにしてください。 http://www.php.net/manual/ja/ref.pdo-mysql.connection.php

関連するQ&A