私はプログラミングにまったくの初心者で、過去 10 日間かそこらで、物事の「売買」ウェブサイトを構築してきました。
とにかく、私は今、人々が登録し、広告を投稿し、それらに返信できるようになりました...しかし、今は広告を検索できるページが必要です.
検索フォームは、「make」、「model」、「caliber」の 3 つのフィールドで機能します (サイトは銃用です)。
<form action="" method="get" autocomplete="off">
I'm looking for a
<input type="text" name="make" class="autosuggestmake" placeholder="Manufacturer"/>
<div class="dropdown">
<ul class="resultmake"></ul>
</div>
<input type="text" name="model" class="autosuggestmodel" placeholder="Model"/>
<div class="dropdown">
<ul class="resultmodel"></ul>
</div>
in
<select name="caliber" >
<option value="*">(Caliber) Any</option>
<option value=".177">.177</option>
<option value=".20">.20</option>
<option value=".22">.22</option>
<option value=".25">.25</option>
</select>
<input type="submit" value="Search" />
これは、次のコードで「キャッチ」する GET データとして投稿されます。
$advert = new Advert;
if (empty($_GET) === true){
$adverts = $advert->fetch_all();
} else {
$search_make = $_GET['make'];
$search_model = $_GET['model'];
$search_caliber = $_GET['caliber'];
$adverts = $advert->fetch_results($search_make, $search_model, $search_caliber);
}
私の fetch_results クエリは次のとおりです。
class Advert {
public function fetch_results($search_make, $search_model, $search_caliber) {
global $pdo;
$search_caliber = mysql_real_escape_string($search_caliber);
$search_make = mysql_real_escape_string($search_make);
$search_model = mysql_real_escape_string($search_model);
if (empty($search_make) === true){
$search_make = "*";
}
if (empty($search_model) === true){
$search_model = "*";
}
$query = $pdo -> prepare("SELECT * FROM `adverts` WHERE make = '$search_make' AND model = '$search_model' AND caliber = '$search_caliber'");
$query -> execute();
return $query -> fetchAll();
}
私の最後の質問で、誰かが私に PDO を使い始めるように言ったので、私はそうしました :)
私の問題は、誰かがフォームの make フィールドに入力すると、何も返されないことです。get 変数が空白の場合、* を追加すると、何かが返されると思いましたが、そうではありません:( 検索してきましたが、問題を見つけるために検索する正しい単語がわからないことが問題だと思います私の問題を治す...
どんな助けでも大歓迎です。