@ikfah012
Не самый умный парень в этом чате

Как правильно обработать выбор и вывод даты?

Добрый день.
Мне нужно вывести все посты из бд за указанную дату.
Вот как выглядит выбор даты:
<form method="post" name="date" action="date.php" >
                        <input class="form-control" type="date" name="delivery_date" value="<?=htmlspecialchars(date('Y-m-d', strtotime($users['delivery_date'])), ENT_QUOTES)?>" id="example-date-input"> <button type="button" class="btn btn-primary btn-xs mb-3">Найти</button>
                        </form>


А вот, что я наделал в php:
<?php

require_once('db.php');

if(isset($_POST['date']))
{
    $date = $_POST(['delivery_date']);

$SQL = "SELECT * FROM $dbtable WHERE delivery_date='$date' AND delivery='1' ORDER BY id DESC";
$result = mysqli_query($link, $SQL);

if ($result) {
  header('Location:print.php');
}
else {
    printf("Ошибка: %s\n", mysqli_error($link));
}
}
?>

Скорее всего я некорректно составил запрос или некорректно передал дату. Помогите, пожалуйста, разобраться с тем, как именно мне правильно передать дату и получить данные за неё из таблицы, а также как мне их потом вывести на странице.
  • Вопрос задан
  • 1183 просмотра
Решения вопроса 1
Kasperenysh
@Kasperenysh
Рецидив в особо острой форме))
рабочий вариант:
<?php
require_once('db.php');
?>
<form method="post" action="">
<input type="date" name="delivery_date"> 
<input type="submit" value="Найти">
</form>
<?
if(isset($_POST['delivery_date'])) 
{
    $date = $_POST['delivery_date'];
    $SQL = "SELECT * FROM $dbtable WHERE delivery_date = '$date' AND delivery = 1";
    $result = mysqli_query($link, $SQL);

    while ($res = mysqli_fetch_assoc($result))
    {
        echo $res["user"]." (".$res["delivery_date"].")<br>";
    }
} 
?>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега PHP
В строку $date = date('Y-m-d', ['delivery_date']; Вы должны подставлять не строку, как Вы сейчас делаете, а временную метку.
Так как Вы делаете у Вас ничего не получится.
А вот так должно получится:
$date = date('Y-m-d', strtotime('delivery_date'));
Это если дата в $delivery_date у Вас приблизительно в виде "4-03-2019" или похожем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы