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