Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Where-OR-AND, Jak skrócić kod
tomek1973
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 14.03.2009

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


Mam taki kawałek kodu:


  1. WHERE
  2. `id_zawodnika` = '.$krow['id'].' AND `cykl` = "Grand Prix Polski" AND `data` LIKE "2008%" AND `sektor` = "A"
  3. OR `id_zawodnika` = '.$krow['id'].' AND `cykl` = "Grand Prix Polski" AND `data` LIKE "2008%" AND `sektor` = "B"
  4. OR `id_zawodnika` = '.$krow['id'].' AND `cykl` = "Grand Prix Polski" AND `data` LIKE "2008%" AND `sektor` = "C"



Dzięki niemu obliczam wyniki klasyfikacji z jednego roku.

Teraz chce zrobić to samo, ale z 2 lat, więc wychodzi mi kod:


  1. WHERE
  2. `id_zawodnika` = '.$krow['id'].' AND `cykl` = "Grand Prix Polski" AND `data` LIKE "2008%" AND `sektor` = "A"
  3. OR `id_zawodnika` = '.$krow['id'].' AND `cykl` = "Grand Prix Polski" AND `data` LIKE "2008%" AND `sektor` = "B"
  4. OR `id_zawodnika` = '.$krow['id'].' AND `cykl` = "Grand Prix Polski" AND `data` LIKE "2008%" AND `sektor` = "C"
  5. OR`id_zawodnika` = '.$krow['id'].' AND `cykl` = "Grand Prix Polski" AND `data` LIKE "2009%" AND `sektor` = "A"
  6. OR `id_zawodnika` = '.$krow['id'].' AND `cykl` = "Grand Prix Polski" AND `data` LIKE "2009%" AND `sektor` = "B"
  7. OR `id_zawodnika` = '.$krow['id'].' AND `cykl` = "Grand Prix Polski" AND `data` LIKE "2009%" AND `sektor` = "C"
  8.  



Muszę też policzyć dla 3 lat i 5 lat i robi się niezły bigos.

Czy można skrócić ten kod?
myślałem o czymś takim:

  1. Where
  2. `id_zawodnika` = '.$krow['id'].' AND `cykl` = "Grand Prix Polski" AND `data` LIKE ( "2008%" OR "2009%") AND `sektor` = ("A" OR "B" or "C")


Oczywiście to tylko moja koncepcja. Czy kombinuje we właściwym kierunku?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





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




Cytat
`data` LIKE "2008%"

czy pole data to u Ciebie pole tekstowe (varchar, char)?
Jak tak to szybko popraw na pole datowe: DATE lub DATETIME

A jak juz poprawisz to uzywaj funkcji które są przeznaczone dla dat
http://dev.mysql.com/doc/refman/5.1/en/dat...-functions.html
i od razu będzie lepiej i krócej
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 22:23