2016-07-21 2 views
1

Я пытаюсь заставить пользователя ввести дату и сделать записи в формате PHP, дата которых (дата типа даты) равна дате ввода пользователя. Я продолжаю получать нулевые результаты, когда он должен хотя бы показать 1.SELECT WHERE Дата равна тому, что пользователь набрал не работает

Вот мой текущий код. Обратите внимание, что я должен был заполнить что-то в случае, если пользователь оставляет дата текстовое поле пустым (в случае, если он не хочет, чтобы искать по дате)

$Query = 'SELECT fname,lastname FROM recordsdb WHERE joindate = ?';

и раздел:

$Bind_fdate = date("Y-m-d"); 
if ($_POST["userinputdate"] != "enterdatehere") {$Bind_fdate = strtotime($_POST["userinputdate"]);} 
mysqli_stmt_bind_param($stmt,"s",$Bind_fdate); 

Я показываю только нужные части, но этот код работает, пока я не добавил часть сравнения даты. Мне просто нужно отображать записи, даты которых соответствуют дате ввода пользователем. Поле joindate в базе данных - это поле типа даты (YYYY-MM-DD), например 2015-07-21. Нет типа даты в mysqli_stmt_bind_param, поэтому я использовал s. Даже если пользователь вводит 2015-07-21 или 2015-7-21, я получаю нулевой результат. Что я делаю не так?

+0

Просто преобразуйте обе даты в предложение where в том же формате – Nosyara

ответ

0

может быть проблемой, связанной с date_format функции

"SELECT fname,lastname FROM recordsdb WHERE joindate = date_format(? , '%Y-%m-%d')"; 
0

StrToTime() возвращает эпоху, не отформатированные дат, что вам нужно.

Попробуйте заменить

StrToTime ($ _ POST [ "userinputdate"])

С

даты ('Ут-d', StrToTime ($ _ POST [ "userinputdate "]))

Вам также не понадобится первая строка.

Смежные вопросы