Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Statystyki z bazy między datą x - y
jaccogaco
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 4.10.2013

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


Mam dwie zmienne $x i $y (generowane na podstawie aktualnej daty), które zawierają dzień od którego do którego mają być wyświetlane statystyki. Chcę stworzyć zapytanie do bazy z wykorzystaniem tych zmiennych. W bazie datę mam zapisana w timestamp. Nie wiem jak zabrać się za to zapytanie by wyświetlało mi rekordy między dniem $x, a $y.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
com
post
Post #2





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


BETWEEN lub DATE_ADD() (IMG:style_emoticons/default/wink.gif)

Ten post edytował com 8.10.2013, 23:55:01
Go to the top of the page
+Quote Post
jaccogaco
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 4.10.2013

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


O BETWEEN wiem, ale nie wiem jak tego użyć. Coś takiego próbowałem, ale nie działa. Jak poprawny zapis powinien wyglądac?
  1. ...WHERE data BETWEEN DAY($x) AND DAY($y)...
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




DAY($x) A po co to? Chcesz pobrac rekordy miedzy jedna datą a drugą a nie miedzy dniem jednym a dniem drugim....
I skoro date w bazie masz jako timestamo to $x i $y tez maja byc timestampem. Wowczas normalnie robisz:

...WHERE data BETWEEN $x AND $y...
Go to the top of the page
+Quote Post
jaccogaco
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 4.10.2013

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


Raczej chcę pobrać między jednym, a drugim dniem. Chcę zrobić statystyki z ostatniego i obecnego tygodnia. Ostatni tydzień:
  1. $x = date("d", strtotime("last Monday, -7 day"));
  2. $y = date("d", strtotime("last Monday, -1 day"));


  1. $result = mysql_query("SELECT autor, SUM(wygrana) as suma_wygranych FROM tabela WHERE data BETWEEN DAY($x) AND DAY($y) AND wynik != '' GROUP BY autor LIMIT 3");


Data w bazie ma taką postać: 2013-09-30 01:05:00
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Tak, wiem co chcesz zrobic. Ale ty nie rozumiez, ze tydzien, zaczyna sie data i konczy sie data. To są daty, a nie dni miesiaca podczas porownywania....Masz porownywac daty a nie dzien miesiac bo to daty sa granicą...

..where date between '2013-09-09' and '2013-09-16'
Go to the top of the page
+Quote Post
jaccogaco
post
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 4.10.2013

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


Tak?
  1. date("Y-m-d", strtotime("last Monday, -7 day"));


a w zapytaniu zmienna już bez DAY. Różnie kombinowałem przed napisaniem tu i żaden sposób mi nie wyświetla wyników...
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




1) No to pokaz calosc po uwzglednieniu moich poprawek.
2) Pamietaj ze daty w zapytaniu maja byc w apostrofach tak jak na przykladzie ci pokazalem
3) Zastosuj sie wkoncu do tego tematu
Temat: Jak poprawnie zada pytanie
Ulatwi Tobie i nam zycie
Go to the top of the page
+Quote Post
jaccogaco
post
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 4.10.2013

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


Cytat(nospor @ 9.10.2013, 11:45:05 ) *
1) No to pokaz calosc po uwzglednieniu moich poprawek.
2) Pamietaj ze daty w zapytaniu maja byc w apostrofach tak jak na przykladzie ci pokazalem
3) Zastosuj sie wkoncu do tego tematu
Temat: Jak poprawnie zada pytanie
Ulatwi Tobie i nam zycie



Nie zwróciłem uwagi na apostrofy... Zazwyczaj jak coś mi nie działa to okazuje się, że gdzieś jest drobny błąd, a ja szukam tam gdzie nie trzeba i kombinuję, a czas płynie. Dziękuję.
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Dlatego podalem ci linka dotematu, w ktorym masz napisane jak analizowac kod, w ktorym masz podane, ze masz wyswietlac bledy bazy. To naprawde niesamowicie przyspiesza prace, a nawet jak nie Tobie to nam.
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: 4.10.2025 - 00:18