Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] lista rozwijana i sortowanie wyświetlonych rekordów z bazy danych
riddick1
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.06.2007

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


1. Mam mianowicie problem, stworzyłem sobie 4 listy rozwijane(nazwa, rodza, firma, smak) w każdej liście załóżmy mam 5 opcji do wyboru.
Następnie mam bazę danych, i w niej odpowiednie dane. Następnie wyświetlam je sobie, i chciałbym posortować dane według opcji z list rozwijanych. I teraz pytanie, czy ktoś wie może jak zrobić że gdy:

  1. <?php
  2. $wynik = mysql_query('SELECT * FROM napoje WHERE nazwa = "napoj" ORDER BY nazwa ASC');
  3. ?>


wyświetlam dane sobie posortowane, ale co zrobić że np. wybiorę sobie z listy rozwijanej firma, czyli ta trzecia i moje zapytanie będzie wyglądało następująco:


  1. <?php
  2. $wynik = mysql_query('SELECT * FROM napoje WHERE firma = "Jakas tam z opcji" ORDER BY nazwa ASC');
  3. ?>

czyli że kryteria sortowania zmieniają się na firmę, i dane z bazy porównujemy z wybraną pod opcją z listy rozwijanej firma.

2. A także może ktoś wie jak zrobić coś może podobnego do tego wyżej, tylko że jak wybierzemy 3 opcje, z 3 różnych list rozwijanych to kryteria naszego sortowania to np. dane które są zgodne z (firmą, smakiem,nazwą) i są porównywane z wartościami wybranymi w każdej liście rozwijanej.

Mogłem trochę zamieszać. Dzięki za odpowiedź:*
Go to the top of the page
+Quote Post
no_face
post
Post #2





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Mysle, ze tworzac skrypt oparty na tym co piszesz, najlepiej skonstruowac odpowiednie zapytania, ktore beda sie wykonywac po odpowiednich wyborach select.
Go to the top of the page
+Quote Post
riddick1
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.06.2007

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


nie wiem czy dobrze zrozumiałem i chodzi tobie jeżeli opcja pierwsza to wyświetla to, jeżeli druga to tamto.

A jeżeli 2 na raz? a nawet to przy 5 "filtrach" się sprawdzi, ale nie przy 20. Dziś długo się nad tym zastanawiałem ale no nic nie przyszło mi do głowy... ;/
Go to the top of the page
+Quote Post
tomm
post
Post #4





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

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


mozesz ustawić w formularzu jako pierwszą opcję "WYBIERZ" czyli

<option> Wybierz </option>

<option> coś tam1</option>

<option> coś tam2</option>

i po przesłaniu formularza sprawdzać

foreach($_POST as $key => $wybor){

  if($wybor != 'Wybierz') $wybrane[$key] = $wybor;

}

i poźniej wrzucić do zapytania kolejne elementy tablicy $wybrane czyli coś jak

$q = 'SELECT * FROM napoje WHERE ';

foreach($wybrane as $k => $v){

    $q.= '$k = "$v" AND ';

}

$q = substr($q, 0, -4);

i dalej $q.= ' ORDER BY ' i tu znow dodać pola wg których ma być sortowane

pisane tak z palca tak więc napewno coś pomyliłem ale ogólny "szkielet" masz
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 Aktualny czas: 20.08.2025 - 21:39