mini motore di ricerca in php

angel_napster

Nuovo Utente
25 Ott 2008
2
0
0
salve a tutti...sono nuovo, mi presento il mio nickname è angel_napster0:)
Ho un problemino con un mini motore di ricerca in un database fatto in php...
Mi sapreste dire dove c'è l'errore???
Questa pagina ha come input una variabile che deve contenre le iniziali della o delle parole da ricercare nel database.
questa è la pagina della ricerca...

\*<html><body>
<?php
$conn = mysql_connect("localhost", "admin", "0147");
if (!$conn)
{
echo ("Errore durante la connessione a MySOL.");
exit();
}

// Selezione del database "Articoli"
mysql_select_db("database_unep");

$ric_nat=$_POST["ricerca"];

$sql = "SELECT cod_nat, nome_nat FROM natura WHERE nome_nat LIKE '$ric_nat%' ORDER BY nome_nat ASC";
if (!mysql_query($sql))
{
echo ("Errore nel comando SELECT");
exit();
}
$numero = mysql_num_rows($sql);
if ($numero == 'o')
{
echo("Non ho trovato nulla");

}

?>
<!-- Intestazione della tabella -->
<TABLE BORDER=l CELLPADDING=5>
<TR bgcolor=#66FF33>
<TD>CODICE</TD>
<TD>NATURA</TD>

</TR>



<?php
while ($riga = mysql_fetch_array($sql))
{
$cron=$riga["cod_nat"];
// Operazioni sulla riga
?>




<!-- Righe della tabella -->
<TR>

<TD><?php echo($riga["cod_nat"]); ?></TD>
<TD><?php echo($riga["nome_nat"]); ?></TD>
<td><a href="carico1.php?cod_nat=<?php echo ($riga["cod_nat"]."&"."nome_nat=".$riga["nome_nat"]); ?>">AGGIUNGI</a></td>
</TR>

<?php

} // fine while
mysql_close($conn); ?>
</TABLE>
Totale righe nel database: <?php echo($numero);
?>
<br>

<hr width="200"><br>

</body>

</html>*\


Mi da questi due tipi di errori:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in e:\programmi\easyphp1-8\www\unep\ric_natura.php on line 21
CODICE NATURA

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in e:\programmi\easyphp1-8\www\unep\ric_natura.php on line 40


Cosa posso fare???
Grazie
 
Innanzitutto controlliamo che la query sia correta, così non va bene:
PHP:
if (!mysql_query($sql)) 
{ 
echo ("Errore nel comando SELECT"); 
exit(); 
}

perché non ti dice se è presente un errore, meglio:
PHP:
$query = mysql_query($sql) or die (mysql_error());

In secondo luogo a mysql_num_rows() non devi passare la query ma il suo risultato, poi mysql_num_rows() non può essere uguale a 'o' ma a 0.

Quindi:
PHP:
$numero = mysql_num_rows($query); 
if ($numero == 0) 
 { 
 echo("Non ho trovato nulla"); 
 }else{ 
   while ($riga = mysql_fetch_array($query))
  {
   //etc. etc
   }
 }

Infine ricordati che se mysql_num_rows() restituisce 0 non devi utilizzare mysql_fetch_array(), altrimenti riceverai un errore.:byebye:
 
Ultima modifica:

Discussioni simili