J'utilise un input avec auto-complétion pour rechercher les membres.
La recherche se fait par le prénom et le nom.
Le problème c'est qu'il n'y a que le prénom pris en compte.
Dès qu'on commence la recherche par le nom, aucun résultat n’apparaît.
Voici la requête :
<?php
session_start();
require('config.inc.php');
if(isset($_POST['queryString'])){
$queryString = $_POST['queryString'];
if(strlen($queryString) > 0){
$req1 = $connect->prepare("SELECT id, prenom, nom, pseudo, sexe FROM users WHERE prenom LIKE :queryString OR nom LIKE :queryString1 OR CONCAT(prenom,' ',nom) LIKE :queryString2 ORDER BY prenom LIMIT 8");
$req1->execute(array(':queryString'=>$queryString.'%',':queryString1'=>'A%'.$queryString.'%', ':queryString2'=>$queryString.'%'));
$resultMsg = $req1->rowCount();
if($resultMsg > 0){
while($resultMsg = $req1->fetch()){
$id = $resultMsg['id'];
$prenom = $resultMsg['prenom'];
$nom = $resultMsg['nom'];
$pseudo = $resultMsg['pseudo'];
$sexe = $resultMsg['sexe'];
$search_membre = '../img/upload/'.$id.'-mini.jpg';
$adresse_search = $sexe == 1 ? '../img/upload/homme.jpg' : '../img/upload/femme.jpg';
if(strlen($prenom) > 35) { $prenom = substr($prenom, 0, 35) . "..."; }
if(strlen($nom) > 35) { $nom = substr($nom, 0, 35) . "..."; } ?>
<ul class="search">
<li class="user">
<a href="#" onClick="fillInfos('<?php echo $resultMsg['id']; ?>');fill('<?php echo $resultMsg['prenom']; ?> <?php echo $resultMsg['nom']; ?>');return false;">
<?php if(file_exists($search_membre)){ ?>
<img class="avatar-id" src="../img/upload/<?php echo $id; ?>-mini.jpg" height="32" width="32" alt="" />
<?php } else { ?>
<img class="avatar-search" src="<?php echo $adresse_search; ?>" height="32" width="32" alt="" />
<?php } ?>
<span class="text"><b><?php echo htmlentities(ucfirst($prenom)); ?> <?php echo htmlentities(ucfirst($nom)); ?></b></span>
</a>
</li>
</ul><?php } } else { ?>
<ul class="search">
<li class="user">
<span class="noSearch">La recherche n'a donné aucun résultat.</span>
</li>
</ul><?php } } } ?>
Ce que je voudrais c'est avoir des résultats en commençant le recherche soit par le nom, soit par le prénom, soit les deux (en comptant l'espace entre les deux).Merci d'avance