Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Mysql + PHP] Filtorwanie po dacie
tikky
post
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

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


Witam,

Mam w bazie danych pole o nazwie data. Przykładowo takie '2007-10-01 23:13:55'

Chciałbym zadać zapytanie do bazy o wszystkie rekordy np z października tego roku.

Wiem że manualnie mogę to zrobić tak
CODE
SELECT * FROM baza WHERE data BETWEEN '2007-10-01' AND '2007-10-31'
ale jak zrobić żeby podać jakąś zmienną z PHP która bedzie zawierała numer miesiąca?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
b_chmura
post
Post #2





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


  1. <?php
  2. $q  = mysql_query("SELECT * FROM baza WHERE data BETWEEN '2007-".$ble."-01' AND '2007-".$ble."-31';");
  3. ?>


o to chodzi?
Go to the top of the page
+Quote Post
tikky
post
Post #3





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

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


hmm :-) to takie proste?

Ja myślałem, że jeśli miesiąc będzie miał 30 dni - przykładowo listopad a zapytamy: 
  1. <?php
  2. ....BETWEEN '2007-11-01' AND '2007-11-31';"
  3. ?>

to wyskoczy błąd że nie istnieje 31 listopada.

Ale faktycznie wydaje się działać - dziękuję za pomoc.
Go to the top of the page
+Quote Post
AxZx
post
Post #4





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


to mozesz zrobic
  1. WHERE year(DATA) = 2007 AND month(DATA) = 11
Go to the top of the page
+Quote Post
tikky
post
Post #5





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

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


Tak, ten sposób jest dużo prostszy. Udało mi się zrobić to tak jak chciałem. Dziękuję za pomoc.
Go to the top of the page
+Quote Post
Indeo
post
Post #6





Grupa: Zarejestrowani
Postów: 295
Pomógł: 7
Dołączył: 26.03.2004
Skąd: Opole

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


Jeszcze prościej:
  1. SELECT * FROM tabela WHERE DATA LIKE '2007-10%'
  2.  
  3. #albo np liczba rekordów w poszczególnych miesiącach:
  4.  
  5. SELECT LEFT(DATA,7) AS DATA,count(*) AS liczba FROM tabela GROUP BY DATA ORDER BY DATA
Go to the top of the page
+Quote Post
tikky
post
Post #7





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

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


dzieki, ten sposób też działała.
Udało mi się już obejść inne problemy i moja witrynka jest już w testowej postaci.
www.cenozerca.pl

dzieki za pomoc
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 19:25