Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] lista rozwijana i sortowanie wyświetlonych rekordów z bazy danych
Forum PHP.pl > Forum > Przedszkole
riddick1
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ź:*
no_face
Mysle, ze tworzac skrypt oparty na tym co piszesz, najlepiej skonstruowac odpowiednie zapytania, ktore beda sie wykonywac po odpowiednich wyborach select.
riddick1
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... ;/
tomm
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
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.