Pobieranie danych z bazy utworzonych w danym przedziale czasu

0

Cześć, jestem zielony w kwestii 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

$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', $data_OD, PDO::PARAM_STR); 
$instrukcja->bindValue('data_do', $data_DO, PDO::PARAM_STR); 
$instrukcja->execute(); 
$czesci = $instrukcja->fetchAll();
?>

Czy może ktoś powiedzieć co robię źle. Dziękuję z góry.

3

Przekazujesz datę jako stringa więc pewnie nie pasuje mu formatowanie daty

0

Tak, tylko jak te stringi przekształcić do właściwego formatu. Poniższe funkcje nie dają rady

<?php
$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');
?>

jaką funkcją mogę to zrobić poprawnie?

0

To już chyba pytanie bardziej do działu PHP ... kojarzę, że kiedyś używałem FORMAT ale w PHP dobre 15 lat nie dziergałem ... zagadaj w dziale PHP na pewno kto odpowie. Tak na szybko to tyle co znalazłem na SO:

https://stackoverflow.com/questions/805828/using-mysqli-bind-param-with-date-and-time-columns

1 użytkowników online, w tym zalogowanych: 0, gości: 1