Skocz do zawartości

Zaawansowana wyszukiwarka


Strefamocy

Rekomendowane odpowiedzi

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:

<?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

Odnośnik do komentarza
Udostępnij na innych stronach

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ć.

W sumie to nie wiem w czym widzisz problem ? ;)

else
{
if($_GET[nazwa]!='') $DODATKOWO="AND a.nazwa LIKE '".trim($_GET[nazwa])."%' ";
if($_GET[w_opisie]!='') $DODATKOWO.="AND a.w_opisie LIKE '%$_GET[w_opisie]%'";
/* Pozostale pola */
$zapytanie=sql("SELECT * FROM asortyment a WHERE 1 ".$DODATKOWO." ");
}

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Ok to rozumiem, a teraz mam pytanie jak to przekazać do index.php ponieważ za bardzo nie wiem.

Jestem początkujący z php i niektóre rzeczy nie są dla mnie oczywiste.

Mój search.php kończy się instrukcją:

$produkt='SELECT Firma , Nazwa , Cena , Id_Produktu FROM `Produkty` , `Producenci` WHERE ".$DODATKOWO."  ORDER BY "$ORDER" ';

I teraz wynik zapytania muszę jakoś przekazać do index.php ponieważ w index zmienna $produkt

jest wykorzystana w następujący sposób:

$wynik_zapytania=mysql_query($produkt);

Czekam na radę i pomoc

Odnośnik do komentarza
Udostępnij na innych stronach

Przykładowe inne rozwiązanie

<?
if(isset($_GET))
{
function SprawdzPola()
{
	foreach($_GET as $klucz => $wartosc)
	{
		if($klucz!='Wyslij')/*Nazwa z buttona */
		{
			if(!empty($wartosc)) return TRUE;
		}
	}
}
if(SprawdzPola())
{
	// Przygotowanie zapytania do bazy danych
}
else
{
	header('location:index.php');
	exit;
}
}
?>

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Jakoś dziwnie do tego Podchodzisz. Skoro masz stronę search.php cały kod wyszukiwarki powynien być w search.php .

Poza tym w zmiennej $produkt jest zapytanie a nie jego wynik Wynik zapytania będzie w : $wynik_zapytania po jego (zapytania) wykonaniu.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Lista produktów wyświetla się na stronie index.php z której prowadzi link do strony z wyszukiwaniem zaawansowanym

Wynikiem wyszukiwania zaawansowanego musi być lista produktów, więc gdzie mam ją wyświetlać?

Muszę coś przekazać do indexu.php żeby wyświtlił coś wg nowego selecta stworzonego w wyszukiwarce chyba?

Odnośnik do komentarza
Udostępnij na innych stronach

Na stronie wyszukiwania czyli search.php powinien być zaimplementowany cały kod wyszukiwarki.

Nie przekażesz wyników z funkcji mysql_query($produkt) na jednej stronie do innej strony.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Tak, dajesz akcję pustą lub akcję na stronę search.php następnie przechodzisz w pętli przez wynik zapytania...

Przykładowa implementacja:

$zapytanie=sql("SELECT * FROM asortyment a WHERE 1 ".$DODATKOWO." ");
while($rekord=mysql_fetch_object($zapytanie))
{
echo ''.$rekord->Firma.' | '.$rekord->Nazwa.' | '.$rekord->Cena.'<br>';
}

Należało by jeszcze dodać stronicowanie wyników zapytania ale to już inna kwestia.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

fragment zapisania ktory powstal z algorytumu wyszukiwania przekazac do sesji ?
To może podaj co masz na myśli pod tym szumnym pojęciem ? :spam:

Możne też "fragment zapisania ktory powstal z algorytumu wyszukiwania" zapisać w bazie danych będzie do wykorzystania nie tylko podczas bieżącej sesji, ale i na później ;)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

to tez jest dobre rozwiazanie, ja stosuje to u siebie jako szablony wyszukiwania - wylistowuje je i po kliknieciu przezentuje wyniki

za "fragment zapisania ktory powstal z algorytumu wyszukiwania" - skrot myslowy (jak to mowia PIS`owcy) - nie przeczytalem tego co napisalem,

chodzilo mi o fragment zapytania nie zapisania...

fragment zapytania - ktory pozniej jak zmienna wstawiasz do zapytania ogolnego.

Odnośnik do komentarza
Udostępnij na innych stronach

fragment zapytania - ktory pozniej jak zmienna wstawiasz do zapytania ogolnego.
Zaiste dziwna ta twoja nomenklatura, tak samo jak podejście do tego zagadnienia...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności