Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sortowanie danych po wykonaniu zapytania
Murek1993
post 11.05.2012, 18:19:58
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 23.04.2012

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


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


Ten post edytował Murek1993 11.05.2012, 18:26:25
Go to the top of the page
+Quote Post
k_@_m_i_l
post 11.05.2012, 18:43:53
Post #2





Grupa: Zarejestrowani
Postów: 349
Pomógł: 72
Dołączył: 22.01.2008
Skąd: Wadowice/Oświęcim

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


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.

Ten post edytował k_@_m_i_l 11.05.2012, 18:44:43


--------------------
"PHP to człowiek. MySQL to również człowiek."
Go to the top of the page
+Quote Post
Murek1993
post 11.05.2012, 18:58:08
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 23.04.2012

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


nie bardzo rozumiem nie istniej jakas prostrza metoda by uzyc 2 razy wartosci z formularza
Go to the top of the page
+Quote Post
k_@_m_i_l
post 11.05.2012, 19:11:36
Post #4





Grupa: Zarejestrowani
Postów: 349
Pomógł: 72
Dołączył: 22.01.2008
Skąd: Wadowice/Oświęcim

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


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.

Ten post edytował k_@_m_i_l 11.05.2012, 19:11:54


--------------------
"PHP to człowiek. MySQL to również człowiek."
Go to the top of the page
+Quote Post
Murek1993
post 11.05.2012, 19:30:23
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 23.04.2012

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


a wpadlem na taki sam pomysl nie rozumiejac TWojej wersji
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.04.2025 - 12:24