Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Problem z napisaniem zapytania
krzesik
post
Post #1





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


Witam, mam bazę a w niej następujące dane:
data | ocena | przedmiot | uczeń

2014-03-21 | 4 | fizyka | Kowalski Jan
2014-10-05 | 5 | historia | Kowalski Jan

potrzebuję zrobić selecta na datach tak aby pokazywał rok szkolny.
Go to the top of the page
+Quote Post
IProSoft
post
Post #2





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


I z czym masz problem, napisałeś cokolwiek?
Go to the top of the page
+Quote Post
krzesik
post
Post #3





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


Cytat(IProSoft @ 3.04.2015, 13:46:30 ) *
I z czym masz problem, napisałeś cokolwiek?


Na początku musze sprawdzić dzisiajszą datę aby pokazać aktualne dane
  1. $dzisiaj_data = date('Y-m-d');
  2. $dzisiaj_rok = date('Y');
  3. if($dzisiaj_data >= $dzisiaj_rok.'-09-01')
  4. {
  5. $rokod = $dzisiaj_rok;
  6. $rokdo = $dzisiaj_rok+1;
  7. $sezon = $rokod.'/'.$rokdo;
  8. }
  9.  
  10. if($dzisiaj_data < $dzisiaj_rok.'-09-01')
  11. {
  12. $rokod = $dzisiaj_rok-1;
  13. $rokdo = $dzisiaj_rok;
  14. $sezon = $rokod.'/'.$rokdo;
  15. }

Później powinienem sprawdzić z jakich lat są zapisy w bazie:
  1. $sprdat = mysql_query("SELECT distinct DATE_FORMAT(data, '%Y') as rok from oceny");

i tou sią zagmatwałem.....
Go to the top of the page
+Quote Post
IProSoft
post
Post #4





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


W pierwszym poście pisałeś, że potrzebujesz zapytania, opisz dokładnie co ma robić, lub czego potrzebujesz ?
Go to the top of the page
+Quote Post
krzesik
post
Post #5





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


Mam w bazie następujące dane:

data | ocena | przedmiot | uczeń

2014-03-21 | 4 | fizyka | Kowalski Jan
2014-10-05 | 5 | historia | Kowalski Jan

muszę filtrować dane poprzez selecta (listę rozwijalną - w której są lata szkolne np 2014/2015, 2015/2016, generowaną na podstawie danych w bazie)
Go to the top of the page
+Quote Post
Aqu
post
Post #6





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


Coś takiego:
  1. SELECT * FROM db WHERE UNIX_TIMESTAMP(STR_TO_DATE(`data`, '%Y-%m-%d')) > poczatek_roku_w_unixtime AND UNIX_TIMESTAMP(STR_TO_DATE(`data`, '%Y-%m-%d')) < koniec_roku_w_unixtime


chociaż wygodniej byłoby od razu trzymać datę w unixtime

Ten post edytował Aqu 3.04.2015, 18:01:14
Go to the top of the page
+Quote Post
krzesik
post
Post #7





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


Bardziej chodziło mi o coś takiego:
  1. SELECT *,
  2. IF(MONTH(`date`)>9,CONCAT_WS('/', YEAR(`date`), YEAR(`date`)+1),CONCAT_WS('/', YEAR(`date`)-1, YEAR(`date`))) AS `sezon`
  3. FROM `oceny`;

ale to też nie jest do końca to ponieważ, doklejam kolumnę z przełomami lat (a wychodzą mi cyrki).... ;(

Wie ktoś może dlaczego w "doklejanej" kolumnie wychodzą mi dziwne wartości?
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: 16.09.2025 - 10:19