Quote Originariamente inviata da boots Visualizza il messaggio
Il problema, secondo me, è che il NULL di php ('', 0 o null) lo devi convertire nella stringa NULL da inserire nella query (che poi verrà interpretata come NULL da dbms). L'unica soluzione che mi viene in mente è questa:

Codice PHP:
$codice=(trim($_POST['codice_libro'])) ? "'".$_POST['codice_libro']."'" 'NULL';
$utente=(trim($_POST['utente'])) ? "'".$_POST['utente']."'" 'NULL';

SELECT *
FROM  my_libri
WHERE
    codice_libro 
IFNULL($codicecodice)
AND 
utente IFNULL($utenteutente
Ma a questo punto tanto vale scrivere:

Codice PHP:
$codice=(trim($_POST['codice_libro'])) ? "'".$_POST['codice_libro']."'" 'codice';
$utente=(trim($_POST['utente'])) ? "'".$_POST['utente']."'" 'utente';

SELECT *
FROM  my_libri
WHERE
    codice_libro 
$codice
AND utente $utente 
Oppure, se ho capito le tue intenzioni, puoi costruirti la query dinamicamente:

Codice PHP:
$condition '1=1 ';

if(
trim($_POST['codice_libro'])){
    
$condition " AND codice_libro='"$_POST['codice_libro'] ."'";
}
if(
trim($_POST['codice_libro'])){
    
$condition " AND utente ='"$_POST['utente'] ."'";
}

SELECT *
FROM my_libri
WHERE $condition 
PS: In ogni caso andrebbe fatto l'escape di $_POST['utente'] e $_POST['codice_libro']
Ti ringrazio per le risposte, sei stato molto esplicativo. Purtroppo, provando a utilizzare questo codice:

Codice PHP:
$utente=(trim($_POST['utente'])) ? "'".$_POST['utente']."'" 'NULL'
continua ad passare un valore empty (o blank) invece di NULL.
Hai qualche altra idea?

Grazie