Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem w wczytaniem daty przez SELECT
Forum PHP.pl > Forum > Przedszkole
damianprz
Chcę SELECTEM wyszukać rekord (z datą dzisiejszą lub jakąś wpisaną do formularza) w tabeli data (id, data, tak_nie) żeby odczytać czy ten rekord ma w polu tak_nie wartość tak lub nie, ale mniejsza z tym.

  1. $zapytanko = "SELECT * FROM data WHERE data = ".$_POST['data']."";
  2. $rezultat=mysql_query($zapytanko);
  3. $wiersz=mysql_fetch_array($rezultat);
  4. echo "<BR>data z formularza: ".$wiersz['data']." ok";
  5. echo "<BR>id z formularza: ".$wiersz['id']." ok";


próbowałem też zamiast data wpisywać data2 (to są nazwy inputów z formularza, patrz poniżej)
  1. $zapytanko = "SELECT * FROM data WHERE data = ".date('Y-m-d')

i nie wczytuje mi tego rekordu

W formularzu zapodaję:
  1. $time1 = date("Y-m-d");
  2.  
  3. <form action='data_2.php' method='POST'>
  4. <input type='datetime' name='data' value='2009-08-19'>
  5. <input type='datetime' name='data2' value='$time1'>
  6. <INPUT class='button' type=submit value='data' style='font-family: Verdana; font-size: 10pt; font-weight: bold'>
  7. </form>


Ale gdy zapytam:
  1. $zapytanko = "SELECT * FROM data WHERE data = '2009-08-19'"

to wczyta rekord

A takie echo
  1. $time1 = date("Y-m-d");
  2. echo $time1;

wyświetli mi 2009-09-03 czyli dobry format daty, taki jest w bazie danych
Fantazyn
Nie wiem jakiego typu jest zapisana data w Twojej bazie danych, ale może spróbuj wartość daty dać w ciapki np. ' lub "

np.
  1. $zapytanko = 'SELECT * FROM data WHERE data = "'.$_POST['data'].'"';


Edit: W swoim zapytaniu
  1. $zapytanko = "SELECT * FROM data WHERE data = ".$_POST['data']."";
nie doklejasz ciapek do $_POST['data'].

Pozdrawiam.
Spawnm
Proszę nadać sensowny tytuł .
kubek15
Ja miałem raz podobny problem z data i w mysql w tej komórce che ma byc data dałem odpowiedni format czyli data, a miałem varchar(12). Więc zobacz czy ty mas ztam ustawione data a ni np. INT.
smile.gif Pozdro smile.gif
Fixus
ustaw po prostu pole na typ DATETIME i będzie po sprawie
maly_swd
Masz blad w skladni
Twoje:
  1. $zapytanko = "SELECT * FROM data WHERE data = ".date('Y-m-d');


Powinno byc:
  1. $zapytanko = "SELECT * FROM data WHERE data = '".date("Y-m-d")."'";
damianprz
Cytat(Fixus @ 3.09.2009, 19:21:50 ) *
ustaw po prostu pole na typ DATETIME i będzie po sprawie


Zmiana nic nie pomogła, dodała tylko w bazie do każdej daty godzinę 00:00:00

Cytat(maly_swd @ 3.09.2009, 19:24:22 ) *
Masz blad w skladni
Twoje:
  1. $zapytanko = "SELECT * FROM data WHERE data = ".date('Y-m-d');


Powinno byc:
  1. $zapytanko = "SELECT * FROM data WHERE data = '".date("Y-m-d")."'";


$zapytanko = "SELECT * FROM data WHERE data = '".date("Y-m-d")."'"; <---tu może bardziej widoczne
Ta zmiana pomogła.

Wszystkim pomagającym, czytającym ten temat serdecznie dziękuję.

Cytat(Fantazyn @ 3.09.2009, 15:38:00 ) *
Nie wiem jakiego typu jest zapisana data w Twojej bazie danych, ale może spróbuj wartość daty dać w ciapki np. ' lub "

np.
  1. $zapytanko = 'SELECT * FROM data WHERE data = "'.$_POST['data'].'"';


Edit: W swoim zapytaniu
  1. $zapytanko = "SELECT * FROM data WHERE data = ".$_POST['data']."";
nie doklejasz ciapek do $_POST['data'].

Pozdrawiam.


Ta propozycja też zadziałała!
Wielkie dzięki za zainteresowanie i pomoc!!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.