J'ai un script d'autocomplétion en ajax.
Le problème se trouve en SQL, j'aimerais que la recherche se précise à chaque lettre.
Par exemple, si j'entre la lettre A, tous les prénom qui ont la première lettre A vont s'afficher.
Maintenant si j'écris An, j'aimerais que les résultats changent, et affichent les prénom avec les 2 premières lettres An
Voici ma requête :
if(isset($_POST['queryString'])){
$queryString = $_POST['queryString'];
if(strlen($_POST['queryString']) > 0){
$resultat = Bdd::connect() -> prepare("SELECT prenom, nom FROM users WHERE CONCAT(prenom,' ',nom) LIKE :q OR CONCAT(nom,' ',prenom) LIKE :q ORDER BY prenom LIMIT 10");
$resultat->execute(array('q' => $queryString.'%'));
if($resultat){
while($result = $resultat -> fetch(PDO::FETCH_ASSOC)){
if($result['prenom'] == infoMembre($id,'prenom')){
return false;
} else {
echo '<li onClick="fill(\''.$result['prenom'].'\');">'.$result['prenom'].' '.$result['nom'].'</li>';
}
}
} else {
echo 'Erreur';
exit();
}
}
} else {
header('location:index.php');
exit();
}
Les deux CONCAT, servent à rechercher les membres à la fois par leur nom ou leur prénom.Merci d'avance