Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Problem z zapytaniem
piotrek1984
post 21.02.2010, 10:47:22
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 25.01.2010

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


Witam,

Panowie, mam nastepujacy problem: probuje wymyslec, znalezc sposob jak sprawdzic, czy okreslona data znajduje sie w podanym przedziale czasowym. Mianowicie w tabeli mam m.in. takie dwie kolumny: data_od oraz data_do w ktorych przechowywane sa daty rozpoczecia i zakonczenia wydarzenia. Chcialbym wyswietlic te wydarzenia, ktore odbywaja sie dzis, jutro, pojutrze. Czytam ciagle o funkcji date(), jednak potrzebuje jakiegos ukierunkowania moich poszukiwan smile.gif
Go to the top of the page
+Quote Post
lessi
post 21.02.2010, 13:05:38
Post #2





Grupa: Zarejestrowani
Postów: 89
Pomógł: 12
Dołączył: 1.12.2009

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


Nie wiem do końca o co ci chodzi. Jeżeli chcesz zrobić wszystko w mysql to spróbuj http://tom000.info/blog/mysql__funkcje_prz...zania_daty.html . A jeżeli w php to chyba trzeba się nagimnastykować trochę, ale jest do zrobienia. Jeżeli chcesz funkcją date() to myślę że z mysql pobrać datę, funkcją substr wybrać dzień i porównać z dniem o jeden większym od dzisiejszego. Ale chyba da się to prościej zrobić, ale nie wiem do końca jak. A jak wyświetlić które są dziśquestionmark.gif w mysql wstawić warunek
  1. $data=date("Y-m-d H:i:s");
  2. $result = mysql_query("SELECT cos tam FROM tabela WHERE data='$data'");




Ten post edytował lessi 21.02.2010, 13:09:27
Go to the top of the page
+Quote Post
ostrylg
post 21.02.2010, 13:41:31
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 18
Dołączył: 11.12.2005
Skąd: Gdańsk

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


Zainteresuj się between, możesz też poczytać tutaj.

Ten post edytował ostrylg 21.02.2010, 13:42:00
Go to the top of the page
+Quote Post
piotrek1984
post 22.02.2010, 13:31:07
Post #4





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 25.01.2010

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


Tak więc wykombinowałem to w ten sposób:

  1. $data=date("Y-m-d");
  2. $zapytanie3="SELECT id_impreza, tytul, img, data_od, data_do, gdzie FROM impreza WHERE '$data' BETWEEN data_od AND data_do";

i nawet działa smile.gif

Teraz kombinuje jak wyświetlić imprezy na jutro i pojutrze. Domniewam, że to trzeba zrobić taki myk:

  1. $data=date("Y-m-d") [+jeden dzień];


Tylko jak to zrobic ? smile.gif
Go to the top of the page
+Quote Post
piotrooo89
post 22.02.2010, 13:35:08
Post #5


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a czemu nie zastosujesz CURDATE?

a do następnych dni INTERVAL?

http://dev.mysql.com/doc/refman/5.1/en/dat...-functions.html


--------------------
Go to the top of the page
+Quote Post
piotrek1984
post 22.02.2010, 13:53:09
Post #6





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 25.01.2010

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


Bo nie ogarniam, nie wiem jak wykorzystać tą funkcję, więc robię tak jak umiem

  1. $zapytanie3="SELECT id_impreza, tytul, img, data_od, data_do, gdzie FROM impreza WHERE 'data_od' < CURDATE() > 'data_do'";


niestety nie działa sad.gif
Go to the top of the page
+Quote Post
piotrooo89
post 22.02.2010, 13:58:19
Post #7


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a to to co to jest?

  1. WHERE 'data_od' < CURDATE() > 'data_do'";


debugguj mysql_error.


--------------------
Go to the top of the page
+Quote Post
piotrek1984
post 22.02.2010, 14:53:37
Post #8





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 25.01.2010

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


  1. SELECT id_impreza, tytul, img, data_od, data_do, gdzie FROM impreza WHERE CURDATE() BETWEEN data_od AND data_do


Tylko jest mały zonk - jeżeli w 'data_od' i 'data_do' jest ta sama data to wtedy powyższe zapytanie nie pobiera takich rekordow. Znajdzie sie jakis patent na to, zeby pobierało ?

Ten post edytował piotrek1984 22.02.2010, 14:59:03
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: 8.07.2025 - 08:59