Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapytania, zapytania...
Forum PHP.pl > Forum > Bazy danych > MySQL
mdk
Chciałbym prosic o pomoc w pewnej kwestii:

Mam baze produktów:
produkty ('id','nazwa','cena') ktore wyświetlane są na stronach w porcjach po 10. Uzytkownik serwisu może dowolnie dobierać metode sortowania (tj.: id rosnąco, id malejaco, nazwa rosnaco, nazwa malejąco itd...)
Chciałem takze do tej prezentacji produktów dołączyć możliwość szukania produktu po nazwie i tu pojawia się problem. Otóż moge wyszukać dowolny element w bazie ale jak sformuować zapytanie aby wyswietlilo sie 9 nastepujacych bezpośrednio po wyszukanym elemencie rekordow zgodnie z ustawionym przez uzytkownika kryterium sortowania nie stosując if'ów na 'sort by' ?
aktualnie wyglada to tak sad.gif
  1. <?php
  2. $orderby ; // string zawierajacy aktualna metode sortowania
  3. $name ; // nazwa wyszukiwanego produktu
  4. $query1 = mysql_query("select * from produkty order by $orderby ");
  5. while($row = mysql_fetch_array($query1)) if($row['name']==$name) break;
  6. $i=9;
  7. echo $row['name'];
  8. while($i--) echo $row['name']
  9. ?>

ale nie satysfakcjonuje mnie to rozwiazanie do konca...
erix
nie pchaj do tego php; samo SQL wystarczy:
  1. SELECT * FROM `produkty` ORDER BY `klucz` WHERE `name`="fraza"

zamiast `name`="fraza" możesz dać też `name` LIKE "%fraza%"
mdk
chyba sie nie zrozumieliśmy sad.gif
nie chodzi mi o mechanizm wyszukiwania tylko o to jak kazać sql'owi wypisać 10 kolejnych rekordów ktore występują bezpośrednio po wyszukanym...
AxZx
moze najpierw nauczyc sie skladni jakiej uzywa sie w php?
poznaj dokladnie jak maja wygladac poszczegolne funkcje
erix
mdk, to pobierz ID wyszukanego rekordu i potem wybierasz te, ktore mają większe ID.
SongoQ
Cytat
chyba sie nie zrozumieliśmy sad.gif
nie chodzi mi o mechanizm wyszukiwania tylko o to jak kazać sql'owi wypisać 10 kolejnych rekordów ktore występują bezpośrednio po wyszukanym...


  1. SELECT *
  2. FROM produkty, (SELECT id FROM produkty WHERE ............ itd) t
  3. WHERE produkty.id >= t.id AND produkty.id < t.id + 10
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.