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
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Jak pisał Nospor, data powinna być typem daty, a nie ciągu tekstowego, wyszukiwanie po takim korzystając z like jest powolne.

Bardziej w ten deseń:
  1. WHERE `cykl` = "Grand Prix Polski" AND `sektor` IN ("A", "B", "C") AND YEAR(`data`) IN (2007,2008,2009)
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: 27.09.2025 - 02:24