Filtro multiplo di selezione Sql

Riccardo Contu

Utente Attivo
14 Lug 2019
25
0
1
Buonasera,

sto creando un filtro multiplo per selezionare gli elementi di una tabella in base ai vari parametri impostati.

Il form è così composto:

PHP:
<textarea cols='60' rows='1' name='nome'></textarea>
<textarea cols='60' rows='1' name='seriale'></textarea>
<input type='checkbox' name='stato[]' value='NUOVO'>NUOVO
<input type='checkbox' name='stato[]' value='DA RIPARARE'>USATO

Quindi si può inserire il nome del prodotto, il seriale e selezionare uno o entrambi i checkbox 'stato'

Successivamente eseguo la query per recuperare i risultati:

PHP:
$nome_prodotto = mysql_real_escape_string($_POST['nome']);
$seriale = mysql_real_escape_string($_POST['seriale']);
$stato = $_POST['stato'];
$stato1 = implode(" OR stato = ", $stato);

$query="SELECT * FROM tabella WHERE nome = '$nome_prodotto'";
if($seriale) {
  $query.=" AND seriale ='$seriale'";
}
if($stato) {
  $query.=" AND stato = '$stato1'";
}

$query=mysql_query($query);

Funziona quasi tutto correttamente fino a quando viene selezionato solo uno dei due checkbox 'stato'. Se invece vengono selezionati entrambi la query non restituisce nessun risultato. Potreste indicarmi dove sta l'errore nel mio codice ed eventualmente come risolverlo?
 
Ho risolto in questo modo:

PHP:
$stato = $_POST['stato'];
$stato1 = join("','",$stato);

E sulla query:

PHP:
if($stato) {
  $query.=" AND stato IN ('$stato1')";
}
 
OK!
ok.gif

Bene!
applausi.gif
 

Discussioni simili