Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Jak wybierać z bazy po polu typu "date"
naj
post 1.12.2009, 20:30:58
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 23.10.2009

Ostrzeżenie: (0%)
-----


Mam problem z wybieraniem z bazy po dacie.
Otóż pomysł jest taki, żeby za pomocą rozwijanej listy zawęzić zakres wyświetlanych dat. Użytkownik wybiera na formularzu dzień rok miesiąc początkowy i dzień rok miesiąc końcowy i powinny się wyświetlić dane z tego przedziału.

W bazie w odpowiednim polu przechowywane są daty w formiacie date: YYYY-MM-DD
Z danych pobranych z formularza tworzę string o tym formacie, np. 2008-5-29 jako datę początkową i 2009-5-20 jako datę końcową.

Sprawdzam, że moja data złożona z danych wybranych w formularzu równa się wpisanemu z klawiatury stringowi '2009-5-29'. No i z tym stringiem wpisanym z klawiatury wynik zapytania przedział dat w wyniku zapytania jest odpowiednio ograniczony a z tym złożonym z danych z formularza - nie. Dlaczego, kurczę?

Ten post edytował naj 1.12.2009, 20:32:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
korro
post 1.12.2009, 20:55:34
Post #2





Grupa: Zarejestrowani
Postów: 259
Pomógł: 42
Dołączył: 8.04.2005
Skąd: Mława

Ostrzeżenie: (0%)
-----


Wklej zapytanie, będzie łatwiej. Marzeniem byłby cały skrypt.


--------------------
Go to the top of the page
+Quote Post
naj
post 1.12.2009, 21:06:50
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 23.10.2009

Ostrzeżenie: (0%)
-----


heh, mi sie nigdy tych rzeczy nie chce czytac, ale prosze bardzo :]

Więc na początku mam formularz, do wybierania i submitowania daty początkowej i końcowej - tu we fragmentach

  1. echo"<form action='platnosci.php' method='POST'/>";
  2. echo"<select name='s_dzien'>...<option value=31>31</option> </select>";
  3.  
  4. echo"<select name='s_miesiac'> <option value=1>styczeń</option>...<option value=12>grudzień</option> </select>";
  5.  
  6. echo"<select name='s_rok'> <option value=2008>2008</option> </select>";
  7.  
  8. echo"<select name='e_dzien'> <option value=1>1</option>...<option value=31>31</option></select>";
  9.  
  10. echo"<select name='e_miesiac'> <option value=1>styczeń</option> <option value=12>grudzień</option> </select>";
  11.  
  12. echo"<select name='e_rok'> <option value=2008>2008</option> </select>";
  13.  
  14. echo"<input type='submit' value='filtrowanie płatności'>";
  15. echo"</form>";


następnie tworzę stringa z danych przesłanych formularzem:
  1. $s_data=$_POST['s_rok']."-".$_POST['s_miesiac']."-".$_POST['s_dzien'];
  2. $e_data=$_POST['e_rok']."-".$_POST['e_miesiac']."-".$_POST['e_dzien'];


i wysyłam zapytanie do bazy:

  1. $zapytanie="SELECT sp.dataplatnosci, sp.kwotaplatnosci FROM platnosci WHERE sp.dataplatnosci >= ".$s_data." AND sp.dataplatnosci <= ".$e_data;


dodam, że zapytanie w którym używam wartości wpisanych z klawiatury, tj.

  1. $zapytanie="SELECT sp.dataplatnosci, sp.kwotaplatnosci FROM platnosci WHERE sp.dataplatnosci >= '2008-5-10' sp.dataplatnosci <= '2005-5-25';


działa

no i sprawdzenie

'2005-5-25'==$s_data;

wyrzuca mi true przy wyborze odpowiedniej daty
Go to the top of the page
+Quote Post
Daimos
post 1.12.2009, 21:09:42
Post #4





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


lektura na wieczór:
http://dev.mysql.com/doc/refman/5.1/en/dat...-functions.html


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
naj
post 1.12.2009, 21:20:01
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 23.10.2009

Ostrzeżenie: (0%)
-----


Rozwiązaniem jest wzięcie value w
  1. <option value=31>31</option>
formularza w cudzusłów, o
  1. <option value='31'>31</option>


Stworzenie stringa bez kresek:

  1. $s_data=$_POST['s_rok'].$_POST['s_miesiac'].$_POST['s_dzien'];
  2. $e_data=$_POST['e_rok'].$_POST['e_miesiac'].$_POST['e_dzien'];


i można porównywać

http://dev.mysql.com/doc/refman/5.0/en/using-date.html

Ten post edytował naj 1.12.2009, 21:28:14
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:47