Ciao a tutti,
vorrei fare un piccolo script di ricerca che permette di restituire dei risultati anche se nel form di ricerca è valorizzato 1 solo campo dei 4 disponibili.

Ho un form html nella pagina cerca.php con 4 campi in input: nome, cognome, libro, nazione.
Tramite il metodo POST, vengono passati i dati alla pagina risultati.php

La pagina risultati.php è così costituita:
Codice PHP:

<?php
error_reporting
(0);

$nome $_REQUEST['nome'];
$cognome $_REQUEST['cognome'];
$libro $_REQUEST['libro'];
$nazione $_REQUEST['nazione'];

include(
"connect.php");
$result mysql_query("
SELECT id, 
       libro,
       cognome,
       stato,
       nome
  FROM anagrafica
  WHERE nome = IFNULL('
$nome',nome)
  AND cognome = IFNULL('
$cognome',cognome)
  AND libro = IFNULL('
$libro',libro)
  AND nazione = IFNULL('
$nazione',nazione)
                        "
);
$rows=mysql_num_rows($result);
?>
<html>
<head>
.... html code ....

<?php
$i
=0;
while (
$i $rows) {
$nome=mysql_result($result,$i,"nome");
$libro=mysql_result($result,$i,"libro");
$cognome=mysql_result($result,$i,"cognome");
$nazione=mysql_result($result,$i,"nazione");
?>
... costruzione tabella html....
Il problema è che quando nel form html della pagina cerca.php, valorizzo solo il campo nome = ANDREA, la query retituisce null.

Ho cercato online una alternativa equivalente alla funzione NVL di Oracle e tra i risultati, quella più accreditata è la IFNULL come infatti ho usato nella query, ma a questo punto non so se la query sia scritta correttamente, sopratutto nella WHERE condition.

Potreste dirmi come posso risolvere i problema?


Grazie