В администраторе веб-магазина я перечисляю заказы из 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
означает, что я хочу искать. (имя пользователя, идентификатор заказа, адрес электронной почты...)
Вы могли бы построить предложение where
перед оператором sql, основанным на существовании значений даты POST - это не очень красиво, и этот и оригинальный код уязвимы для SQL-инъекции. Я предположил (возможно ошибочно) в запросе, что столбец 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";
!empty( $_POST['date_from'] ) && !empty( $_POST['date_end'] )
~ должно потребоваться, чтобы оба были НЕ пустыми для продолжения