Je suis en train de créer une fonction de recherche pour mon site Web où l'utilisateur peut effectuer une recherche en utilisant 3 paramètres. L'utilisateur peut choisir d'entrer les 3 paramètres pour filtrer le tableau ou aucun et recevoir le tableau entier. J'ai trouvé comment construire dynamiquement la requête en fonction de ce que l'utilisateur saisit, mais j'ai des difficultés à appeler les paramètres suivants bind_params()
avec le bon nombre d'arguments et le bon ordre.
Code :
$sql = "SELECT position, rank, fullname, phonenumber, email, division
FROM `table` WHERE 1=1 ";
if(!empty($_POST['fname'])){
$firstname = $_POST['fname'];
$sql .= " AND `fullname` LIKE '%?%'";
}
if($_POST['div'] !== "All"){
$division = $_POST['div'];
$sql .= " AND `division` LIKE '%?%'";
}
if(!empty($_POST['pos'])){
$position = $_POST['pos'];
$sql .= " AND `position` LIKE '%?%'";
}
$stmnt = $db->prepare($sql);
$stmnt -> bind_param('sss', $firstname, $division, $position);
$stmnt -> bind_result($position, $rank, $fullname, $phonenumber, $email,$division);
$stmnt -> execute();
Je reçois toujours cette erreur : Number of variables doesn't match number of parameters in prepared statement
Je comprends pourquoi je l'ai mais j'ai essayé plusieurs choses mais rien n'a marché. Tout conseil ou lien vers une documentation serait utile. Merci