Vous pouvez créer une liste des critères et ajouter dans une liste les valeurs et les types de liens, voici une maquette rapide qui utilise deux des champs auxquels vous vous référez...
$data = [];
$params = "";
$where = [];
if ( !empty($name)) {
$data[] = $name;
$params.="s";
$where[] = "name like ?";
}
if ( !empty($size)) {
$data[] = $size;
$params.="i";
$where[] = "size < ?";
}
$sql = "SELECT * FROM items";
if ( count($where) > 0 ){
$sql .= " where ". implode ( " and ", $where);
}
$query = $database->prepare($sql);
$query->bind_param($params, ...$data);
$query->execute();
Notez que le bind_param()
utilise le ...
pour vous permettre de passer un tableau au lieu des champs individuels.