在.class.php文件中,我有这个查询。
public function findschedules($arricao, $depicao, $airline, $aircraft) {
$query = "SELECT db_schedules.*, db_aircraft.name AS aircraft, db_aircraft.registration
FROM db_schedules, db_aircraft
WHERE db_schedules.depicao LIKE '$depicao'
AND db_schedules.arricao LIKE '$arricao'
AND db_schedules.code LIKE '$airline'
AND db_schedules.aircraft LIKE '$aircraft'
AND db_aircraft.id LIKE '$aircraft'
AND db_schedules.enabled = '1'
AND db_schedules.daysofweek LIKE '%{$day}%'";
return DB::get_results($query);
}
执行搜索时使用公共功能。但是,该文件链接到模板文件$this->show('airport_search.tpl');
,其中包含所有HTML代码,并在其中包含选择框。
<select style="border:1px solid #DCDCDC; color:#003663; font-size:11px;" class="search" name="day" id="day">
<option value="0">Sunday</option>
<option value="1">Monday</option>
<option value="2">Tuesday</option>
<option value="3">Wednesday</option>
<option value="4">Thursday</option>
<option value="5">Friday</option>
<option value="6">Saturday</option>
</select>
以下行旨在搜索daysofweek
表的db_schedules
列中的部分字符串。我正试图从airport_search.tpl
的选择框中为其分配变量。理想情况下,我希望从option value=""
中获取变量并在查询中指定它。
AND db_schedules.daysofweek LIKE '%{$day}%'";
此外,daysofweek
列是varchar(7)类型字段,默认值为0123456
。他们代表天,0是周日,1-6周一至周六。因此,查询的预期输出是查找用户在选择框中给出的日期。
如何根据另一个文件中选择框中的用户输入,将选项框中的变量分配到查询中?
答案 0 :(得分:1)
$day = $_POST['day'];
只需提交表单的所选选项,您就可以获得value
属性。
但是,请勿使用$day
。使用mysqli / PDO并编写参数化查询,如下所示:
$stmt = $pdo->prepare("...AND daysofweek LIKE ?");
$stmt->execute("%$day%");