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





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Co dokładniej byś chciał wyszukać ?

Kod
SELECT * FROM `produkty` WHERE (`promocja` = '1' AND `cena_promocyjna` = '$wysz_cena') OR (`promocja` = 0 AND `cena` = '$wysz_cena')


gdzie

Kod
$wysz_cena = $_GET['cena'];


$_GET/POST cena - to zmienna do wyszukania (IMG:style_emoticons/default/wink.gif)

pzdr
Powód edycji: [thek]: Dałeś TO SAMO zapytanie! To co zrobił autor to prepared statements.
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 - 03:56