Praticamente hai postato tutta una serie di codice che non serve!
Scherzo e passo subito a risponderti.
Suppongo tu stia creando una specie di motore di ricerca, in cui puoi restringere i risultati in base alla categorie merceologica o meno.
Devi creare una stringa di query dinamica.
Mi spiego meglio.
Alla pagina che riceve i dati dalla form, devi scrivere una cosa del genere:
Se la variabile è stata valorizzata in qualche modo (dalla select) allora alla stringa SQL viene concatenata quella che vedi nell'if.Codice PHP:
$sql = "
SELECT *
FROM prodotti
WHERE descrizione LIKE %testo%
";
if(isset($_POST['cat']) && $_POST['cat'] != "") {
$sql .= " AND categoria = ".$_POST['cat'];
// occhio a lasciare uno spazio prima della parola AND
}
Ricordati che nella select, per la prima OPTION (o comunque per quella che permette di cercare in tutte le categorie) devi inserire o una stringa vuota (come nell'IF che ho scritto io) oppure un valore a te noto, con il quale vai a fare il controllo nella IF di cui sopra.
Ultima annotazione.
Una query SQL di questo genere (senza un minimo di controlli sugli input) è oro colato per gli hacker!
![]()