• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPで検索画面を作成していますが上手に動きません)

PHPで検索画面を作成していますが上手に動きません

このQ&Aのポイント
  • HTML上にあるドロップダウンリストから項目を選択し実行すると、一致する項目をPHPMysql DBより抽出し表形式で表示したい。
  • kensaku.htmlでは、種類を選択するドロップダウンリストがあり、その値をkensaku.phpに送信し、該当するデータを抽出して表形式で表示します。
  • kensaku.phpでは、受け取った値を条件としてデータベースから抽出し、結果を表形式で表示します。

質問者が選んだベストアンサー

  • ベストアンサー
  • shiren2
  • ベストアンサー率47% (139/295)
回答No.3

とりあえず、補足を手直ししたものを書いておきます。 sprintfの使い方と、phpタグの使い方に注意してください。 <html> <body> <?php // betuを設定、初期値は'あ' $betu = (isset($_REQUEST['betu']) ? $_REQUEST['betu'] : 'あ'); //データベースに接続 $con = mysql_connect("localhost", "user", "passwd"); //データベースを選択 mysql_select_db("sake", $con); //フォームで送られてきた条件を元にSELECT文を作成 $sql = sprintf("select sid, name, price, betu, area from table_nm where betu='%s'", mysql_real_escape_string($betu)); //SELECT文を実行 $res = mysql_query($sql); ?> <?php //検索結果表示 ?> <table border=1> <tr> <th>NO</th><th>名前</th><th>金額</th><th>種別</th><th>コメント</th> </tr> <?php while($row = mysql_fetch_array($res)): ?> <tr> <td><?php ($row['sid']); ?></td> <td><?php ($row['name']); ?></td> <td><?php ($row['price']); ?></td> <td><?php ($row['betu']); ?></td> <td><?php ($row['memo']); ?></td> </tr> <?php endwhile; ?> </table> </body> </html>

akarukune
質問者

お礼

お礼が遅くなり、失礼しました。回答ありがとうございました。 コーディング拝見して勉強になりました。

akarukune
質問者

補足

いろいろな書籍のサンプルコードを組み合わせて、別のコーディングで解決できました。(一生懸命対応して下さったのに、スミマセン) いろいろとありがとうございました。

その他の回答 (2)

  • ks0902
  • ベストアンサー率85% (6/7)
回答No.2

●kensaku.php <?php //データベースに接続 if (!$con = mysql_connect("localhost", "user", "passwd")) { echo "DB connect error"; } //データベースを選択 if (!mysql_select_db("sake", $con)) { echo "DB select error"; } //フォームで送られてきた条件を元にSELECT文を作成 $sql = "select sid, name, price, betu, area from table_nm where betu like '%betu'"; //SELECT文を実行 if (!$res = mysql_query($sql)) { echo "DB query error"; } //検索結果表示 echo <<<_HTML_ <html> <body> <table border=1>  <tr>   <th>NO</th>   <th>名前</th>   <th>金額</th>   <th>種別</th>   <th>コメント</th>  </tr> _HTML_; while ($row = mysql_fetch_array($res)) { echo <<<_HTML_   <tr>    <td>{$row['sid']}</td>    <td>{$row['name']}</td>    <td>{$row['price']}</td>    <td>{$row['betu']}</td>    <td>{$row['memo']}</td>   </tr> _HTML_; } echo <<<_HTML_ </table> </body> </html> _HTML_; ?>

akarukune
質問者

お礼

回答を送って下さり、ありがとうございました。 勉強を始めたばかりで、寄せていただいたコーディングを解読する事も勉強になりました。

  • shiren2
  • ベストアンサー率47% (139/295)
回答No.1

このソースコードはそのままコピーしたものですか? とりあえず、問題点が多いので列挙しておきます。 kensaku.php 3行目: 開始コードは<?ではなく<?php 9行目: セミコロンが抜けている ; 11行目: SQLインジェクションの脆弱性 mysql_real_escape_string 15行目: セミコロンが抜けている ; 17行目: PHP終了タグが抜けている ?> 22行目: PHPタグが抜けている <?php ... ?> Webサーバーがインストール済みなら、とりあえず実行してみて、エラーを叩いていく方が早いと思います。 ・デバッグ用の設定 http://xpressengine-jp.com/index.php?document_srl=1708&mid=textyle&vid=raku ・mysql_real_escape_string http://php.net/manual/ja/function.mysql-real-escape-string.php

akarukune
質問者

補足

早々に回答していただきまして、ありがとうございます!! 入力ミスを含め、随分ヒドイ状況で問い合わせてしまい、失礼しました。 教えていただいた内容で修正を行いましたが、未だエラーが出ます。 デバック用の設定も上手くできず、再度質問をさせていただけたら・・・と思います。 よろしくお願いいたします。 ●kensaku.php <html> <body> <?php //データベースに接続 $con = mysql_connect("localhost", "user", "passwd"); //データベースを選択 mysql_select_db("sake", $con); //フォームで送られてきた条件を元にSELECT文を作成 $sql = sprintf("select sid, name, price, betu, area from table_nm where betu='%betu'" , mysql_real_escape_string($betu)); //SELECT文を実行 $res = mysql_query($sql); ?> //検索結果表示 <table border=1> <tr> <th>NO</th><th>名前</th><th>金額</th><th>種別</th><th>コメント</th> /tr> <?php while($row = mysql_fetch_array($res)){    <tr>    <td><?php ($row['sid']); ?></td>    <td><?php ($row['name']); ?></td>    <td><?php ($row['price']); ?></td>    <td><?php ($row['betu']); ?></td>    <td><?php ($row['memo']); ?></td>    </tr> } ?> </table> </body> </html>

関連するQ&A

専門家に質問してみよう