Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Mysql + PHP] Filtorwanie po dacie
tikky
post 25.11.2007, 22:10:30
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 25.11.2007, 22:28:38
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. $ble = 12;//grudzien biggrin.gif
  3. $q  = mysql_query("SELECT * FROM baza WHERE data BETWEEN '2007-".$ble."-01' AND '2007-".$ble."-31';");
  4. ?>


o to chodzi?
Go to the top of the page
+Quote Post
tikky
post 25.11.2007, 23:25:43
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 25.11.2007, 23:36:26
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


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
tikky
post 28.11.2007, 20:09:11
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 28.11.2007, 21:27:03
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 6.12.2007, 22:13:25
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:04