使用选项值为搜索条件设置变量

时间:2013-02-14 00:23:04

标签: mysql

在.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周一至周六。因此,查询的预期输出是查找用户在选择框中给出的日期。

如何根据另一个文件中选择框中的用户输入,将选项框中的变量分配到查询中?

1 个答案:

答案 0 :(得分:1)

$day = $_POST['day'];
只需提交表单的所选选项,您就可以获得value属性。

但是,请勿使用$day。使用mysqli / PDO并编写参数化查询,如下所示:

$stmt = $pdo->prepare("...AND daysofweek LIKE ?");
$stmt->execute("%$day%");