#php #sql
#php #sql
Вопрос:
iso.obj.php
$from = null;
$too = null;
if (isset($_POST['search'])) {
if ($from = null) {
$from = date("Y-m-d");
} else {
$from = $_POST['FromDateTime'];
}
if ($too = null) {
$too = date('Y-m-d', strtotime(" 30 days")) . " 23:59:59";
} else {
$too = $_POST['ToDateTime']." 23:59:59";
}
}
$sql ="//statement here with
WHERE capDateTime >='{$from}' AND capDateTime <='{$too}'";
Код работает нормально, но у меня возникла проблема, когда пользователь запрашивает страницу и возвращает пустую таблицу. Но если я выберу дату и время вручную, оно будет отображаться в соответствии с датой и временем.
Мой вопрос: как мне указать текущую дату, если она не установлена, и если установлена, следуйте за $ _POST?
Комментарии:
1. if($from = null){ ??? и
if ($too = null) {
вы присваиваете значения, не сравнивая2.
if ($from === null) {
иif ($too === null) {
3.
if ($too = null) this ---> =
является оператором присваивания. Если вы хотите сравнить его, используйте==
оператор сравнения. Смотрите здесь .4. Примечание: напрямую используя переменные в вашем $ sql, вы подвергаете себя SQL-инъекции. Пожалуйста, используйте PDO или Mysqli см. owasp.org/index.php/SQL_Injection
5. @MaartenSchermer спасибо за напоминание.
Ответ №1:
$from = date("Y-m-d");
$too = date('Y-m-d', strtotime(" 30 days")) . " 23:59:59";
if (isset($_POST['search'])) {
if (!empty($_POST['FromDateTime'])) {
$from = $_POST['FromDateTime'];
}
if (!empty($_POST['ToDateTime'])) {
$from = $_POST['ToDateTime']." 23:59:59";
}
}