PHP Mysql Requête de Recherche
Bonjour, j'ai une simple requête de recherche, ce que je suis en face, c'est quand quelqu'un écrit le seul prénom de l'utilisateur qu'il veut de recherche, ma requête se trouve, aussi, quand quelqu'un écrit que le nom de famille dans l'entrée et l'affiche, elle montre aussi que trop, mais lorsque l'utilisateur écrit le prénom et nom, ainsi que dans l'entrée, il ne peut pas trouver de même que l'utilisateur qu'il/elle existe. La dernière partie de $q requête où j'ai écrit le prénom et nom comme partie ne marche pas je sais que c'est ma logique est mauvais, mais comment puis-je corriger cela
try {
$q = "SELECT * FROM `members` WHERE `first_name` LIKE :search_string OR `last_name` LIKE :search_string OR `first_name` AND `last_name` LIKE :search_string";
$q_do = $db->prepare($q);
$q_do->execute( array("search_string"=>'%'.$query.'%') );
$number = $db->query("SELECT FOUND_ROWS()")->fetchColumn();
} catch(PDOException $e) {
$log->logError($e." - ".basename(__FILE__));
}
Merci
Quelle est la valeur de $requête
c'est ce que l'utilisateur écrit dans la saisie de recherche.
c'est ce que l'utilisateur écrit dans la saisie de recherche.
OriginalL'auteur | 2012-11-23
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser concat:
+1 pour une réponse intelligente qui sera probablement bien fonctionner pour ce que la personne veut le faire, mais une recherche de texte intégral est toujours une bien meilleure approche.
Bien sûr, mais il y a peut être des noms de moins de 4 caractères, vous devez modifier votre mon.cnf. Vous pouvez ajouter un index combiné sur deux champs pour garder rapide avec beaucoup de lignes.
Recherche en texte intégral, ou aucun moteur de recherche, serait un meilleur choix. Que ceux quries ont tendance à devenir complexe très rapide.
OriginalL'auteur Green Black
AND
est un opérateur qui ne soit pas un concatenator.OriginalL'auteur Popnoodles
Ce que vous faites n'est:
Utilisateur entre 'prénom'
De votre recherche :
Vous avez besoin d'utiliser l'ensemble des index de recherche de texte.
http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html
ou quelque chose comme
http://sphinxsearch.com/
OriginalL'auteur E_p
Essayez ceci:
OriginalL'auteur Phius
Le plus simple Requête de Recherche pour vous.. Essayez ce travail de l'homme.
SÉLECTIONNEZ * à PARTIR de
TableName
OÙtitle
like '%Votre Texte de Recherche%'OriginalL'auteur Mavericks