Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapytanie sql
hopsey
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.07.2010

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


Hej wszystkim

mam tabelę produktów z polami:

- id
- nazwa
- promocja (bool)
- cena_promocyjna (float)
- cena (float)

robię wyszukiwarkę (wyszukuje również po cenie) i chcę aby w przypadku produktów gdzie prmocja = 1 porównywał do cena_promocyjna, natomiast gdy promocja = 0 - cena.

próbowałem sklecić coś takiego

  1.  
  2. SELECT * FROM `produkty` WHERE (`promocja` = 1 AND `cena_promocyjna` = ?) OR (`promocja` = 0 AND `cena` = ?)
  3.  


ale nie działa tak jak bym chciał :/

może lepiej zaznaczać te, które spełniają kryteria w obu przypadkach i resztę robić w kodzie? Model produktu ma metodę Produkt::getPrice() która wykrywa czy jest promocja i zwraca właściwe pole.

ktoś ma może jakiś pomysł/sugestię?

Z góry dzięki!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pmir13
post
Post #2





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

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


Na czym konkretnie polega nieprawidłowość tego zapytania ze startera?
Nawiasy nie są potrzebne, bo AND ma wyższy priorytet niż OR, ale poza tym drobnym szczegółem powinno działać dobrze, o ile tylko dobrze podstawiasz cenę do porównania.
"Nie działa tak jakbym chciał" to bardzo ogólne określenie. Może sprecyzuj - dla takich i takich danych zapytanie zwraca to i to, a chciałbym by zwracało to i to.
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: 17.10.2025 - 02:40