- Home
- Categorie
- Coding e Sistemistica
- PHP
- Motore di ricerca che non funziona
-
Motore di ricerca che non funziona
Salve, 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