Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z wyszukiwaniem zaawansowanycm, Proszę o pomoc
Zaleś
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 22.10.2006

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


Witam,
muszę zrobić zaawansowaną wyszukiwarkę na pewną stronę.
Mianowicie zbudowałem formularz, który wysyła dane metoą GET do pliku: search.php

Plik search php wygląda następująco:
Kod
<?php

$firma=$_GET['firma'];
$nazwa_odzywki=$_GET['nazwa'];
$w_opisie=$_GET['w_opisie'];
$cena_od=$_GET['cena_od'];
$cena_do=$_GET['cena_do'];
$sortowanie=$_GET['sortowanie'];
$kategoria=$_GET['kategoria'];

$poloczenie=mysql_connect("baza","nazwa","hasło");
mysql_select_db("nazwabazy");

                   if($firma == "" AND $nazwa_odzywki == "" AND $w_opisie == "" AND $cena_od == "" AND $cena_do == "")
                   {
                       header("Location: strona główna");
                        exit;
                   }

                         else
                   {
                        
                   }

    
?>


Jeśli nic nie wpiszemy do pól to ma przejsć do pełej listy produktów, czyli do strony głónej.

Natomiast jeśli wpiszemy jakieś wartości w poszczególne pola ma tworzyć odpowiednie zapytania do MYSQL, które mają być przekazane do index.php za pomocą parametru i ma wyświetlić odpowiednią okrojoną listę produktów pasującą do kryteriów.

NIe wiem jak rozwiązać, ponieważ jak bm chciał przejść wszystkie możliwośći (firma wpisana reszta nie, firma i nazwa wspiana reszta nie itd)
To strasznie dużo ifów musiałbym napisać.

Czy jest jakiś szybki i jasny sposób jak można by to zrobić i jak przekazać parametr do indexu aby wyswietlal odpowiednie wartosci.

Z gory dziekuje za pomoc.
POzdrawiam
STrefamocy
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
My4tic
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

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


Przecież nie musisz sprawdzać wszystkich kombinacji. Po prostu zób tak, że jeśli jakaś zmienna nie jest pusta to dodajesz ją do warunku przy wyszukiwaniu. Np.

  1. <?php
  2. $array=array();
  3.  
  4.  if ( !empty($_POST['firma'])) array_push($array, "firma = '$_POST[firma]'");
  5.  if ( !empty($_POST['nazwa'])) array_push($array, "nazwa = '$_POST[nazwa]'"); 
  6. .
  7. .
  8. .
  9.  $sWarunki = implode(" AND ", $array);
  10.  
  11.  $sSQL = 'SELECT * FROM tabela';
  12.  if ( !empty($sWarunki)) $sSQL .= ' WHERE '.$sWarunki;
  13. ?>


Jeśli masz tych zmiennych naprawde duzo i nie kierujesz innych parametrów do skryptu przez POST to możesz zrobić to w pętli używając aliasu na zmienną. Wtedy nie bedzie ifów ...i pamiętaj o filtrowaniu zmiennych.

Ten post edytował My4tic 22.10.2006, 16:38:15
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 05:44