Salve a tutti avrei bisogno di aggiungere ad un sito internet un motore di ricerca che mostrasse tutti i risultati di una stringa immessa dall' utente, cercando fra i record del database del sito. Il sito si occupa principalmente di musica quindi per capirci l' utente scrive nel campo di ricerca "nomeArtista" o "nomeTitolo" e questa fa una ricerca della stringa in tutte le tabelle del dabase.

Ho cercato di cavarmela da solo scaricando questo script http://php.html.it/script/vedi/2187/search/ nella sezione apposita del sito ma non sono riuscito a far girare lo script apparentemente molto semplice.

Ho modificato così il file "after_search.php" che troviamo all' interno del pacchetto ma continua a darmi l' errore
E' necessario specificare la/le parola/parole da cercare
.
Codice PHP:
<?php session_start(); if (isset($_SESSION['logged'])&& $_SESSION['logged']==1)     

{
$nulla=0;} else    {     header ("Location:login.php");     die();     }  

$_SESSION['STRINGA']=$_POST['stringa'];  include("connessione.php"); 

if(!
$stringa or $stringa=="") { echo "<font face=\"arial\" size=\"2\">E' necessario specificare la/le 

parola/parole da cercare
<a href=\"javascript:history.back()\">indietro</a></font>"
; exit(); } 

if(
$ordine=="crescente") { $ord="ASC"; } elseif($ordine=="decrescente") { $ord="DESC"; } 

$cn=mysql_connect($host,$uid,$pw); mysql_select_db($db,$cn); 

$sql="SELECT musica.artista , musica.titolo , libri.autore , libri.titolo , prodotti_graffiti.marca , 

prodotti_graffiti.nome , prodotti_djing.marca , prodotti_djing.nome FROM musica , libri , 

prodotti_graffiti , prodotti_djing WHERE musica.artista , musica.titolo , libri.autore , libri.titolo , 

prodotti_graffiti.marca , prodotti_graffiti.nome , prodotti_djing.marca , prodotti_djing.nome LIKE 

'%
$stringa%'";   

if(
$criterio=="esatta") { $sql.="testo LIKE '%$stringa%' ORDER BY id $ord"; } 

elseif(
$criterio=="almeno") { $lista_parole=explode(" ",$stringa); 

for(
$i=0;$i<count($lista_parole);$i++) { $str.="testo LIKE '%$lista_parole[$i]%' OR "; } 

$str=substr($str,0,(strlen($str)-3)); $sql.=$str." ORDER BY id $ord"; } elseif($criterio=="tutte") { 

$lista_parole=explode(" ",$stringa); for($i=0;$i<count($lista_parole);$i++) { $str.="testo LIKE 

'%
$lista_parole[$i]%' AND "; } $str=substr($str,0,(strlen($str)-4)); $sql.=$str." ORDER BY id $ord"; } 

$query=mysql_db_query($db,$sql); $num=mysql_num_rows($query); ?> 

<html> <head> <title>Esempio di motore di ricerca</title> </head> <body> <center> <font 

face="arial" color="red">[b]Risultati della ricerca[/b]</font>

 

<? if($num<1) { echo "<font face=\"arial\" size=\"2\">Nessun risultato trovato
<a 

href=\"javascript:history.back()\">indietro</a></font>"
; } 

elseif(
$num>=1) { echo "<table border=\"1\" cellpadding=\"3\" cellspacing=\"0\" bgcolor=\"silver\" 

bordercolor=\"red\"><tr valign=\"top\"><td><font face=\"arial\" size=\"2\">[b]Data inserimento[b]

</td><td><font face=\"arial\" size=\"2\">[b]Testo[/b]</td></tr>"


while(
$riga=mysql_fetch_array($query)) { echo "<tr><td><font face=\"arial\" size=\"2\">$riga[data]

</td><td><font face=\"arial\" size=\"2\">"
.nl2br($riga[testo])."</td></tr>"; } echo "</table>


<font face=\"arial\" size=\"2\"><a href=\"javascript:history.back()\">indietro</a><font 

face=\"arial\" size=\"2\">"
; } echo "

<font face=\"arial\" size=\"2\">[b]Query SQL 

generata:[/b]
$sql</font>"mysql_close($cn); ?> </center> </body> </html>
Se qualcuno mi da una mano mi farebbe risparmiare molto tempo !