- Home
- Categorie
- Coding e Sistemistica
- Coding
- Motore di ricerca che non funziona
- 
							
							
							
							
							
Motore di ricerca che non funzionaSalve, sto cercando di creare uno script che ricerchi una chiave all'intenro di un database, evidentemente però commetto qualche errore che non riesco a scovare -file search.php [PHP]<? 
 include("topser_foot.inc.php");top(); 
 ?>
 <br/><br /><br /><br/><br /><br /><div align="center"> 
 <center><table border="1" width="300" bgcolor="#FFFF99"> 
 <tr>
 <td width="100%"><p align="center"><b><font size="3" >INSERISCI UNA MARCA</font></b></p> <form method="post" action="result.php"> 
 <p align="center"><input type="text" name="chiave" /></p>
 <p align="center"><input type="submit" value="cerca" /><br /></p>
 </form>
 </tr>
 </table>
 </center>
 </div><br /><br/><br /><br /><br /><br/><br /><br /> 
 <?
 foot();
 ?>
 [/PHP]- file result.php
 [PHP]<? 
 include("topser_foot.inc.php");
 include("config.inc.php");
 top();$db = mysql_connect($db_host, $db_user, $db_password); if ($db == FALSE) 
 die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");mysql_select_db($db_name, $db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); $keys = explode (",", $chiave); 
 $query = "";
 reset ($keys);while (list(,$parola) = each ($chiave)) 
 {
 $parola = trim($parola);
 if ($parola != "")
 $query .= "marca LIKE '%$parola%' OR tipo LIKE '%$parola%' OR venditore LIKE '%$parola%' ";} $query .= "0"; $query = "SELECT * FROM prodotti WHERE " . $query; $result = mysql_query($query, $db); 
 ?>
 <table border="0" width="640">
 <tr>
 <td width="15" bgcolor="#FFFF00">
 <b><font color="#FF0000" size="3">ID</font></b></td>
 <td width="101" bgcolor="#FFFF00">
 <p align="center"><b><font color="#FF0000" size="3">MARCA</font></b></td>
 <td width="141" bgcolor="#FFFF00">
 <p align="center"><b><font color="#FF0000" size="3">TIPO</font></b></td>
 <td width="18" bgcolor="#FFFF00">
 <p align="center"><b><font color="#FF0000" size="3">VENDITORE</font></b></td>
 <td width="71" bgcolor="#FFFF00">
 <p align="center"><b><font color="#FF0000" size="3">PREZZO</font></b></td>
 </tr>
 <?
 while ($row = mysql_fetch_array($result))
 {
 echo "<tr><td width="15"> <font size="4">$row[id]</font></td>"
 . "<td width="101"><font size="4"> $row[marca]</font></td>"
 . "<td width="141"><font size="4">$row[tipo]</font></td> "
 . "<td width="18" <font size="4"> $row[venditore]</font></td>"
 ." <td width="71"<font size="4">$row[prezzo]</font></td></tr>";
 }
 foot()
 ?>[/PHP] QUesti sono gli errori: Notice: Undefined variable: chiave in c:\users\documents\easyphp1-8\www\prova\result.php on line 14 Warning: Variable passed to each() is not an array or object in c:\users\documents\easyphp1-8\www\prova\result.php on line 18 Dove sbaglio?? Grazie mille anticipate 
 
- 
							
							
							
							
							
mi sono accorto di aver postato il codice sbagliato, correggo qui [PHP]<? 
 include("topser_foot.inc.php");
 include("config.inc.php");
 top();$db = mysql_connect($db_host, $db_user, $db_password); if ($db == FALSE) 
 die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");mysql_select_db($db_name, $db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); $keys = explode (",", $chiave); $query = ""; 
 reset ($keys);while (list(,$parola) = each ($keys)) 
 {
 $parola = trim($parola);
 if ($parola != "")
 $query .= "marca LIKE '%$parola%' ";} $query .= "0"; $query = "SELECT * FROM prodotti WHERE " . $query; $result = mysql_query($query, $db); 
 ?>
 <table border="0" width="640">
 <tr>
 <td width="15" bgcolor="#FFFF00">
 <b><font color="#FF0000" size="3">ID</font></b></td>
 <td width="101" bgcolor="#FFFF00">
 <p align="center"><b><font color="#FF0000" size="3">MARCA</font></b></td>
 <td width="141" bgcolor="#FFFF00">
 <p align="center"><b><font color="#FF0000" size="3">TIPO</font></b></td>
 <td width="18" bgcolor="#FFFF00">
 <p align="center"><b><font color="#FF0000" size="3">VENDITORE</font></b></td>
 <td width="71" bgcolor="#FFFF00">
 <p align="center"><b><font color="#FF0000" size="3">PREZZO</font></b></td>
 </tr>
 <?
 while ($row = mysql_fetch_array($result))
 {
 echo "<tr><td width="15"> <font size="4">$row[id]</font></td>"
 . "<td width="101"><font size="4"> $row[marca]</font></td>"
 . "<td width="141"><font size="4">$row[tipo]</font></td> "
 . "<td width="18" <font size="4"> $row[venditore]</font></td>"
 ." <td width="71"<font size="4">$row[prezzo]</font></td></tr>";
 }
 foot()
 ?>[/PHP] Notice: Undefined variable: chiave in c:\users\documents\easyphp1-8\www\prova\result1.php on line 13 ma perchè non riconosce la variabile chiave? 
 
- 
							
							
							
							
							
Forse perchè non gliela passi ne inizializzi da nessuna parte? 
 
- 
							
							
							
							
							
La memorizzo con il form e la richiamo nel secondo script, immagino abbia sbagliato qualcosa ma proprio non riesco a correggere. Comunque grazie 
 
- 
							
							
							
							
							
Ciao, 
 il dato che invii con il form tramite POST si trova in $_POST['chiave'] e non in $chiave.Alessandro