Przeniosłem pytanie z działu MySQL. Mam następujący problem: poniższy kod powinien pobierać tylko te dane z bazy , które zostały wprowadzone w podanym przedziale czasu ( od dnia, do dnia). Niestety kod pobiera wszystkie dane, nie uwzględniając podanego przedziału czasu.
<?php
$data_OD_1 = $_POST['data_od']; // przesłanie dat z formularza
$data_DO_1 = $_POST['data_do']; // przesłanie dat z formularza
$data_OD = $data_OD_1.' '.'00:00:00'; // dodanie do dat godzin, minut, sekund - strona pobiera dane wpisane od godziny 00:00 danego dnia
$data_DO = $data_DO_1.' '.'23:59:59'; // dodanie do dat godzin, minut, sekund - strona pobiera dane wpisane do godziny 23:59 danego dnia
// Próba przeformatowania stringa do wymaganego formatu SQL - datatime
// funkcje były stosowane po kolei. Nie równocześnie.
$mysqldatetime_OD = date("Y-m-d H:i:s", $data_OD);
$mysqldatetime_DO = date("Y-m-d H:i:s", $data_DO);
$mysqldatetime_OD = strtotime("Y-m-d H:i:s", $data_OD);
$mysqldatetime_DO = strtotime("Y-m-d H:i:s", $data_DO);
$mysqldatetime_OD = STR_TO_DATE($data_OD, '%Y-%m-%d %H:%i%s');
$mysqldatetime_DO = STR_TO_DATE($data_OD, '%Y-%m-%d %H:%i%s');
$sql = "SELECT czesci.producent_maszyny, czesci.model_maszyny, czesci.nr_seryjny_czesci,
czesci.ilosc, czesci.id_pytajacego, czesci.data_dodania_zapytania,
pytajacy.imie, pytajacy.e_mail
FROM czesci
JOIN pytajacy ON czesci.id_pytajacego = pytajacy.id_pytajacego
WHERE czesci.data_dodania_zapytania >= :data_od AND czesci.data_dodania_zapytania <= :data_do
ORDER BY id_czesci DESC ;";
$instrukcja = $pdo->prepare($sql);
$instrukcja->bindValue('data_od', $mysqldatetime_OD, PDO::PARAM_STR);
$instrukcja->bindValue('data_do', $mysqldatetime_DO, PDO::PARAM_STR);
$instrukcja->execute();
$czesci = $instrukcja->fetchAll();
?>
Próbowałem przeformatowania stringa do wymaganego formatu SQL - datatime, ale wyskakują błędy. Czy ktoś mógłby podpowiedzieć jak dobrać się do tego problemu.