Bonjour,
1/ commence par supprimer ta regex :
$query = preg_replace("#[^a-z?0-9]#i","",$_POST['query']);
Si je cherche "Jérome", ta regex transforme en "Jrome" : aucune chance de trouver !
Ou au moins lis cette discussion : REGEX "simple" champ prénom
A minima :
$query = preg_replace("#^([^a-zA-ZàáâäæçéèêëîïôùûüÿÀÂÄÆÇÉÈÊËÎÏÔÙÛÜ \-\']+)$#Ui","", trim($_POST['query']) );
N.B. Tu as déjà vu des noms ou prénoms avec des chiffres ? 
2/ La requête :
$sql= "SELECT id,prenom AS title ....
Tu ne récupère ni le nom, ni le prenom, puisque tu mets un alias "title" : $data->prenom n'existe donc pas.
3/ Respecter la casse des noms de fonctions : rowcount(); au lieu de rowCount();
4/ la condition isset() est incluse dans !empty() (attention : l'inverse n'est pas vrai !) :
if(isset($_POST['query']) && !empty($_POST['query']))
devient :
if( !empty($_POST['query']) )
5/ Evite des mettre des espaces n'importe où :
<form action= "<?php echo $_SERVER['PHP_SELF']; ?> " methode= "post ">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" methode="post">
Partager