在网店管理员中,我列出了来自sql的订单。在这里,我也有一个搜索表单,我输入一个关键字,然后开始搜索。
现在,我在表单中添加了日期和日期结束输入。如果管理员输入日期而不仅仅是关键字,我如何将这些添加到sql select中?
<td style="text-align: center;">
<input type="text" name="date_from" value="<?php if(isset($_POST['date_from'])) { echo $_POST['date_from'];} ?>" size="7" class="datepicker">
<span> - </span>
<input type="text" name="date_end" value="<?php if(isset($_POST['date_end'])) { echo $_POST['date_end'];} ?>" size="7" class="datepicker">
</td>
$sql = "SELECT rendeles_user_id , rendeles_id, nev, status, vegosszeg,br_vegosszeg, datum, ido, egyeb FROM rendeles_adatok WHERE $kereses_helye LIKE '%$kw%' ORDER BY $kereses_rendezes $kereses_sorrend";
$kereses_helye
表示我想要搜索的位置。 (用户名,订单ID,电子邮件....)
答案 0 :(得分:1)
你可以根据POST日期值的存在在sql语句之前构建where
子句 - 它不漂亮,这和原始代码很容易被sql注入。我在查询中假设(可能不正确)列datum
是db
$where = !empty( $_POST['date_from'] ) && !empty( $_POST['date_end'] ) ? "where `$kereses_helye` like '%$kw%' and `datum` between '{$_POST['date_from']}' and '{$_POST['date_end']}' " : "where `$kereses_helye` like '%$kw%'";
$sql = "select
rendeles_user_id,
rendeles_id,
nev,
status,
vegosszeg,
br_vegosszeg,
datum,
ido,
egyeb
from rendeles_adatok
{$where}
order by $kereses_rendezes $kereses_sorrend";