Wyszukiwarka php

0

Znalazłem gdzieś na necie taką wyszukiwarkę:

<?php //na katalogu 2
// program wyszukiwarki - search.php
// wy¶wietlenie nagłówka
echo'<h2>Wyniki wyszukiwania</h2>';
// usunięcie niepotrzebnych białych znaków
$_POST['phrase']=trim($_POST['phrase']);
// sprawdzenie, czy użytkownik wpisał dane
if(empty($_POST['phrase']))
// je¶li nie, to wy¶wietl komunikat i zakończ działanie skryptu
die('Formularz wypełniony niepoprawnie! Nie można wy¶wietlić wyników wyszukiwania!');
// je¶li jednak dane s± wpisane poprawnie
else
{
// poł±czenie z baz± danych, NIE ZAPOMINJ USTAWIĆ WŁASNYCH DANYCH!
$base=mysql_connect('localhost','root','','muzamp3');
  mysql_select_db("muzamp3",$base);
// skonstruowanie zapytania
// zwróć uwagę na operator Like - to on jest sercem całej aplikacji. Pozwala wyszukać dany ci±g w bazie danych
// jak zapewne zauważyłe¶, przed fraz± i po niej umieszczam znaki procenta %
// ten znak symbolizuje dowolny inny ci±g znaków, więc jest niezbędny do skutecznego wyszukiwania
// połaczenie operatorem Or pozwala na wyszukiwanie danego ci±gu zarówno w nazwie, jak i opisie produktu
// UWAGA! Tutaj też nie zapomnij ustawić swoich danych!
$query="Select nazwa_produktu From produkt Where nazwa_produktu Like '%{$_POST['phrase']}%'";
// wysłanie zapytania do bazy danych
$result=mysql_query($query,$base) or die(mysql_error());
// ustalenie ilo¶ci wyszukanych obiektów
$obAmount=mysql_num_rows($result);
// wyswietlenie ilo¶ci wyszukanych obiektów
echo'Znaleziono: '.$obAmount.'<br /><br />';
// wy¶wietlenie wyników w pętli
for($x=0;$x<$obAmount;$x++)
{
// przekształcenie danych na tablicę
$row=mysql_fetch_assoc($result);
// wy¶wietlenie numeru identyfikacyjnego
echo $x+1;
echo '. ';
// wy¶wietlenie nazwy produktu
echo $row['nazwa_produktu'];
echo'<br />';
}
}
// zamknięcie poł±czenia
mysql_close($base);
// koniec aplikacji
?>

I mam pewien problem. Mimo kilku godzin męki nie wiem jak sobie z nim poradzić. Otóż chciałbym żeby wyszukiwarka wyszukiwała w "nazwa_produktu" i po wyszukaniu wyświetliła "stały tekst" potem "produkt" "stały tekst2" potem "produkt2" "stały tekst3" potem "produkt3", a nie tak jak jest teraz : wyszukuje w "nazwa_produktu" i wyświetla "nazwa_produktu"
"stały tekst" "stały tekst2" i "stały tekst3" ma być kodem html

Czyżby nie było geniusza zdolnego rozwiązać mój problem?

0

Problemem jest raczej to, że ten kod jest brzydki i się nikomu na niego nie chce patrzeć.

Aby pobierało z bazy coś więcej niż nazwa_produktu, zmień zapytanie z Select nazwa_produktu From produkt Where nazwa_produktu Like '%{$_POST['phrase']}%' na na przykład SELECT nazwa_produktu, costam, costam, costam....

Wyświetlanie masz tutaj:

// wy¶wietlenie nazwy produktu
echo $row['nazwa_produktu'];

Dodaj sobie kolejne instrukcje echo z kodem HTML, który chcesz wyświetlić, bądź $row['costam'] aby wyświetlić inne rzeczy z bazy danych.

0

Select nazwa_produktu From produkt Where nazwa_produktu Like '%{$_POST['phrase']}%' - pierwszy lepszy złośliwiec przejmie całą bazę danych i zrobi z nią to, co będzie chciał. poczytaj o sql injection.

1 użytkowników online, w tym zalogowanych: 0, gości: 1