我是编程的绝对菜鸟,在过去 10 天左右的时间里,我一直在为事物建立一个“买卖交易”网站。
无论如何,我已经到了让人们注册、发布广告和回复他们的能力......但现在我想要一个他们可以搜索广告的页面。
搜索表单适用于 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 变量是空白的,我会附加一个 * 并且它会返回任何内容,但事实并非如此 :( 我一直在搜索,但我认为我的问题是我不知道要搜索的正确单词以找到解决我的问题...
任何帮助将不胜感激。