![]() |
![]() ![]() |
![]() |
![]()
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
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! |
|
|
![]()
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%) ![]() ![]() |
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 ![]() pzdr
Powód edycji: [thek]: Dałeś TO SAMO zapytanie! To co zrobił autor to prepared statements.
-------------------- LS Easter egg < |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 13.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
dzięki toaspzoo, użyłem znaków zapytania, żeby pokazać, w którym miejscu wrzucam cenę. Samo zapytanie jest skonstruowane błędnie.
Nikt nie ma żadnych pomysłów? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%) ![]() ![]() |
$pokaz = SELECT......
Zrób to zapytanie, a potem daj $wiersz = mysql_fetch_array($pokaz); Wyrzuci Ci wtedy wiersze kolumny w tablicy [0-x] / ['wiersz'] np. $cena = $wiersz['cena_promocyjna']; $s_cena = $wiersz['cena'] // ale widzę, że nie masz pola na starą cenę ![]() $roznica = $s_cena - $cena; Jeśli nie wiesz, którą cene ma wyświetlić, to zrób na if if(!empy($wiersz['cena_promocyjna'])) { kod... } -------------------- LS Easter egg < |
|
|
![]()
Post
#5
|
|
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. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 13.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
sorry - okazuje się, że zapytanie jednak działa. musiałem zrobić wcześniej jakąś literówkę.
temat do usunięcia. dzięki! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 10:02 |