Salut Christophe,
Dans ce cas, tu peux utiliser une requête préparée avec marqueur
non-nominatif "?".
Quelle méthode utilise-tu pour exécuter ta requête préparée?
Quelle est la version du PHP que tu utilises sur ton serveur?
Si elle est assez récente, je te conseille vivement de passer à mysqli ou
PDO, car ces 2 extensions proposent la méthode prepare en orienté objet, qui
est fort appréciable et beaucoup plus d'actualité.
Si tu veux toutefois rester avec mySQL, essai ce qui suit :
PREPARE recherche FROM 'SELECT id, pseudo FROM membre WHERE pseudo LIKE ?';
SET @pseudo = CONCAT ('%', $_POST['pseudo'], '%';
EXECUTE recherche USING @pseudo;
Bien amicalement,
Abdel.
-----Message d'origine-----
From: Christophe Garnier
Sent: Friday, July 28, 2017 9:34 AM
To: Proglist
Subject: [progliste] Re: Recherche de caractères et b ase de données
Être Bonjour. Merci beaucoup pour ces explications mais ça ne fonctionne
pas. Concrètement j’utilise des requêtes préparées avec des marqueurs et non
des variables ;
Ma requête de base est
'select id, pseudo from membre where pseudo =:pseudo';
Si je la modifie avec like % j’ai essayé
'select id, pseudo from membre where pseudo like "%:pseudo%"';
Quand je dis ça marche pas je veux dire précisément que la recherche ne
donne aucun résultat même en mettant le pseudo complet dans la recherche.
Merci
Le 27 juil. 2017 à 08:25, Abdel <[email protected]> a écrit :
Coucou Christophe,
Je corrige tout d'abord le sujet de la discussion car il est un peu confus
avec ces caractères illisibles.
Lorsque tu soumets ton formulaire en utilisant la méthode "post", à un
fichier script de traitement PHP, tu dois savoir que les champs de ton
formulaire soumis se transforment automatiquement en variables PHP de type
tableau associatif.
Ainsi, un champ "pseudo" dans le formulaire original verra sa valeur
stockée dans une variable $_POST['pseudo'] une fois dans le script de
traitement PHP.
Puisque ta version de PHP t'autorise encore à utiliser mysql, voici
comment tu devras orienter ta requête.
// On stocke le champ pseudo dans une variable $pseudo.
$pseudo = $_POST['pseudo'];
// Voici maintenant la requête de recherche des occurrences saisies dans
le formulaire.
$requete = mysql_query ("select id, pseudo from membre where pseudo like
'%$pseudo%'");
Si ta bdd comporte des données personnelles, il est préférable d'échapper
les occurrences saisies avec la fonction mysql_real_escape_string, afin de
protéger tes données contre les injections SQL.
// On stocke le champ pseudo dans une variable $pseudo en échappant les
caractères spéciaux.
$pseudo = mysql_real_escape_string($_POST['pseudo']);
// Voici maintenant la requête de recherche des occurrences saisies dans
le formulaire.
$requete = mysql_query ("select id, pseudo from membre where pseudo like
'%$pseudo%'");
En fait, on peut considérer que notre ami Yannick a répondu à 90% de ta
demande, je me suis chargé des 10% restants en répondant à ta seconde
question.
Voili voilou, teste et dis-nous si ça marche.
Bien amicalement,
Abdel.
-----Message d'origine----- From: Christophe Garnier
Sent: Tuesday, July 25, 2017 2:24 PM
To: Proglist
Subject: [progliste]
�tf-8?B?UmU6IFtwcm9nbGlzdGVdIO+/vXRmLTg/UT9SZWNoZXJjaGVfZGVf?�tf-8?B?Y2FyYWN0w6hyZXNfZXRfYmFzZV9kZV9kb25uw6llc18/TWVzc2FnZS1JZDog?�tf-8?B?PDFGNkM3RSAyQS1DQzVGLTQ4NTctQUI3RS1ENUVDNDY1RDI4RDNAZ21haWwu?�tf-8?B?Y29tPg�Date:
Tue, 25 Jul 2017 15:24:17 +0200
bonjour. Merci c’est très claire. Mais dans l’administration du site je
veux par exemple dans un champ de formulaire, rechercher un utilisateur
qui s’appelle christophe. Mais admettons que je ne sache pas exactement
comment ça s’écrit. Je veux rentrer par exemple tophe dans mon champ de
formulaire. ensuite je veux qu’en validant la recherche, qu’elle trouve
tous les éléments qui contiennent tophe. Je traite ça en php et mysql via
des requêtes préparées. Pour l’instant voici la requête que j’avais
effectué avant de poser la question sur le forum.
'select id, pseudo from membre where pseudo =:pseudo';
Merci
Le 25 juil. 2017 à 13:45, Yannick Youalé <[email protected]> a
écrit :
Salut Christophe,
Pour résoudre ton problème tu dois apprendre à placer le caractère % dans
tes requêtes mysql et utiliser le mot clé de comparaison "LIKE".
Exemple pour trouver un nom qui commence par "yan" voici une requête:
SELECT nom FROM membres WHERE nom LIKE 'yan%'
Si tu veux trouver les noms qui ont la chaîne "yan" à l'intérieur, tu
peux employer une requête de ce genre:
SELECT nom WHERE nom LIKE '%yan%'
Et là, quelle que soit la position de la chaîne "yan" dans le nom, il
sera retenu.
J'espère que tu as compris le truc.
Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
www.visuweb.net
Le 25/07/2017 à 09:30, Christophe Garnier a écrit :
Salut à tous.
Je crée une interface d’administration de mon site pour par exemple
avoir la liste des membres, supprimer un ou tous les membres…
J’utilise mysql pour la bdd.
Si je cherche un membre par son pseudo complet ça fonctionne bien. Par
contre si je frappe par exemple les 4 premières lettres du pseudo, il n’est
pas trouvé. Quelle est la solution pour que ça fonctionne ?
Merci
Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pi�ces jointe sont activ�s leur taille est
limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�,
je vous r�pondrez en priv�.
---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com
Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pi�ces jointe sont activ�s leur taille est
limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�,
je vous r�pondrez en priv�.
Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit�
� 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�,
je vous r�pondrez en priv�.
Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit�
� 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�,
je vous r�pondrez en priv�.
Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit� �
2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je
vous r�pondrez en priv�.
Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je
vous r�pondrez en priv�.