Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sortowanie danych po wykonaniu zapytania
Forum PHP.pl > Forum > PHP
Murek1993
Witam mam taki problem , moj skrypt wyszukuje z bazy auta po kilku kategoriach np marka model cena , po wpisaniu interesujacych nas daych wyskakuja nam wyniki np 5 nowych bmw:) ale chcemy kupic najtansze bmw z bazy bo mamy malo kasy:) wiec klikamy na cene i tu schody brak wynikow, gdy skrypt sprawdza czy cos wpisalem w formularz a nic nie wpisalem ukazuja sie mi wszystkie auta z bay , chce sobie sortowac to sortuje po wszystkich polach , dziala to bo do zapytania select * from pojazdy order by $_GET]['zmienna'] ; w zmiennej to co klikniemy i sortuje pieknie ale gdy do zapytania dodam wiecej ograniczen np marka=bmw to gdy kliknie na to po czym chce sortowac to nie dziala . Jak rozwiazac ten problem ,ten problem chyba wynika w tym ze jak wpiszemy w frmularz kryteria wyszukiwania wykona sie zapytanie i ukaza sie w tabeli wyniki to potem po dopisania sortowania czyli np order by cena i prbie wykonania tego to nic nie ma bo chyba nie mozna 2 razy wykonac prawie tego samego zapytania 2 razy z tymi samymi danymi wyslanymi z formularza. Jak to obejsc by te wartosci w formularzu nie znikaly po wykonaniu zapytania

  1. '<th><a href="carsearcher4.php?sort=id_pojazdu&amp;metoda=asc">id_pojazdu</a> <a href="carsearcher4.php?sort=id_pojazdu&amp;metoda=desc">-</a></th>


to jest naglowek tabeli gdy klikam na id_pojazdu sortuje rosnaco gdy minus malejąco

gdy ukaza nam sie wyniki to potem do tego samego zapytania dopisuje sie order by $sort $metoda , gdy zapytanie jest bez ograniczej to sortuje bo ono sie wykonuje jeszcze raz od nowa bez danych z formularza a jak wykonac jeszcze raz te same zapytanie z tymi samymi danymi z formularza plus te order by czyli np
  1. order by cena desc
k_@_m_i_l
Zrób sobie tablicę, z nazwami pól które mogą zostać użyte w wyszukiwaniu.
Przykładowo:
  1. $search_keys = array('name','price','category','model');
  2. $selected_keys = array();
  3. // sprawdzasz czy zostały przesłane
  4. foreach($search_keys as $key)
  5. {
  6. if(isset($_GET[$key]))
  7. $selected_keys[$key] = $key.'='.$_GET[$key]; // pamiętaj o odpowiednim przefiltrowaniu przesłanych danych
  8. }
  9. // teraz tworzysz sobie linki do sortowania,np:
  10. $cat_sort_link = 'plik.php?sort=cat&'.implode('&',$selected_keys);
  11. $price_sort_link = 'plik.php?sort=price&'.implode('&',$selected_keys);


I później wyświetlasz sobie link przypisany np. do $cat_sort_link.
Murek1993
nie bardzo rozumiem nie istniej jakas prostrza metoda by uzyc 2 razy wartosci z formularza
k_@_m_i_l
Czego nie rozumiesz ?
Robisz jedną tablicę, z wszystkimi elementami które masz w formularzu. Inaczej łopatologicznie mówiąc - wsadzasz do tej tablicy, wszystkie wartości które masz w name="" w elementach formularza.
Później sprawdzasz wg tej tablicy czy zostały przesłane jakieś dane i robisz link. Tu jakiejś filozofii nie ma chyba dużej.
Murek1993
a wpadlem na taki sam pomysl nie rozumiejac TWojej wersji
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.