在网上商店管理中,我列出了来自 sql 的订单。在这里,我还有一个搜索表单,我在其中输入关键字,然后开始搜索。
现在,我在表单中添加了日期开始和日期结束输入。如果管理员输入日期而不仅仅是关键字,我如何将这些添加到 sql 选择中?
<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、电子邮件......)
最佳答案
您可以根据 POST 日期值的存在在 sql 语句之前构建 where
子句 - 这并不漂亮,而且此代码和原始代码容易受到 SQL 注入(inject)的攻击。我在查询中假设(可能错误地)datum
列是数据库中的日期列
$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";
关于php - 动态向sql select添加where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47845017/