Возможно ли моя ошибка здесь из-за формата даты?

Хорошо, вот моя проблема. Я хочу сделать запрос, который берет все строки моей таблицы, где дата, указанная пользователем в моей форме, вообще не складывается.

У меня есть форма с двумя полями даты:

<!DOCTYPE html>
<head>
<title>Ha</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="jquery-ui.css">
<script src="jquery.min.js" type="text/javascript" ></script>
<script src="jquery-ui.js"></script>
<script>
$(function() {
$( "#datepicker" ).datepicker();
});
$(function() {
$( "#datepicker1" ).datepicker();
});
</script>
</head>
<body>
<form method="POST" action="cars.php">
<fieldset>
<legend>Rent A Car</legend>
<div class='ddate'><p>Дата на наемане:<input type="date" id="datepicker" name="d1"></p></div>
<div class='ddate'><p>Дата на връщане:<input type="date" id="datepicker1" name="d2"></p></div>
<input type="submit" value="Провери" name="submit"/>
</fieldset>
</form>
</body>
</html>

И у меня есть запрос, где я думаю, что проблема в формате даты.

<?php
//Connection
include "connect.php";
$d1 = $_POST['d1'];
$d2 = $_POST['d2'];
//Query
$sql = "SELECT cars.brand,cars.model,cars.reg_num,cars.horse_powers,cars.color FROM cars INNER JOIN clients_cars ON cars.id=clients_cars.cars_id WHERE cars.id IN
(SELECT DISTINCT clients_cars.cars_id FROM clients_cars WHERE (rent_date not between '$d1' AND '$d2') AND (return_date not between '$d1' AND '$d2') AND ((return_date < '$d1') OR (rent_date > '$d2')))";

$result = mysqli_query($con, $sql);
echo mysqli_error($con);
while ($row= mysqli_fetch_array($result)){
$brand = $row['brand'];
$model = $row['model'];
$reg_num = $row['reg_num'];
$horse_powers = $row['horse_powers'];
$color = $row['color'];

echo $brand;

}
?>

Когда я отправляю этот запрос, он выводит меня из всех строк столбца «бренд» независимо от параметров, выбранных в полях ввода даты.

Что я должен делать ? Может быть, мне нужно изменить типы дат? Или я не знаю … похоже, что запрос правильный и его работа, но его не волнует, пожалуйста, $ d1 и $ d2, кто-то может мне помочь?

1

Решение

Предполагается, что ваш вклад поступает в формате mm/dd/yyyy.
Вам необходимо конвертировать в MySQL формат с date() а также strtotime,

$d1 = date("Y-m-d", strtotime($_POST['d1']));
$d2 = date("Y-m-d", strtotime($_POST['d2']));
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]