Salut Abdel et tous
Merci beaucoup pour ton code. En fait j’utilise déjà pro et les requêtes 
préparées avec bindparap 
Malheureusement bindparap n’excepte pas ce que je lui entre. Voici la ligne et 
le message d’erreur.
//Je mets la requête dans une constante
const CHERCHERMEMBRE = 'select id, pseudo from membre where pseudo like 
:pseudo';
//La ligne qui ne marche pas.
$stmt->bindParam(":pseudo", '%'.$pseudo.'%', PDO::PARAM_STR);
Voici le message d’erreur dans le blog 
[31-Jul-2017 11:31:32 Europe/Berlin] PHP Fatal error:  Uncaught Error: Cannot 
pass parameter 2 by reference in 
/Applications/MAMP/htdocs/classe/MembreManager.php:132
Merci d’avance 





> Le 30 juil. 2017 à 00:33, Abdel <abdelkrim.bens...@free.fr> a écrit :
> 
> Resalut Christophe,
> 
> En PDO, je vais te donner la syntaxe entière pour préparer une requête de 
> recherche dans une BDD, avec les commentaires qui vont avec.
> 
> Je suis certain que tu vas apprécier la simplicité d'utilisation de cette 
> extension !
> 
> Le fichier view.php est en PJ, si tu veux, tu pourras le définir comme action 
> à ton formulaire.
> 
> Tu devras bien entendu préciser le nom de ta bdd, ainsi que le nom 
> d'utilisateur et le mot de passe.
> 
> Le nom du serveur devra être modifié également s'il est différent de 
> localhost.
> 
> <!-- début du code -->
> <?php
> // Récupération du pseudo à partir du formulaire.
> $pseudo = $_POST['pseudo'];
> // Connexion à la BDD.
> $db = new PDO('mysql:host=localhost;dbname=nomDeLaBDD;charset=utf8', 
> 'nomDutilisateur', 'motDePasse');
> // Création de la requête préparée en utilisant un marqueur nominatif.
> $query = $db->prepare('SELECT id, pseudo FROM membres WHERE pseudo LIKE 
> :pseudo');
> // Exécution de la requête en lui passant le pseudo en paramètre entourée des 
> symboles '%'.
> $query->execute(array('pseudo' => '%' . $pseudo . '%'));
> // Si le nombre de résultats est supérieur à 0.
> if ($query->rowCount() > 0)
> {
> // On crée un tableau pour accueillir les données résultantes de la recherche.
> echo "<table border=\"1\">\n";
> // Récupération des données dans un tableau associatif pour chaque ligne de 
> résultat.
> foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
> // On extrait uniquement les clés des tableaux dans une variable $clé.
> extract ($row);
> echo "<tr><td>'$id'</td><td>'$pseudo'</td></tr>\n";
> }
> echo '</table>';
> }
> else
> {
> // Le nombre de résultats est égal à 0, rien trouvé !
> echo '<p>Pas de résultats !</p>';
> }
> ?>
> <!-- Fin du code -->
> 
> Voila, dis-moi ce que tu en penses !
> 
> Bien amicalement,
> Abdel.
> 
> 
> 
> -----Message d'origine----- From: Abdel
> Sent: Saturday, July 29, 2017 5:31 PM
> To: progliste@ml.free.fr
> Subject: [progliste] Re: Recherche de caractères et base de données
> 
> 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 <abdelkrim.bens...@free.fr> 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é <mailtoloco2...@gmail.com> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
>>>> 
>>>> Pour voir les archives de la liste :
>>>> http://www.mail-archive.com/progliste@ml.free.fr/
>>>> 
>>>> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
>>> 
>>> Pour voir les archives de la liste :
>>> http://www.mail-archive.com/progliste@ml.free.fr/
>>> 
>>> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
>> 
>> Pour voir les archives de la liste :
>> http://www.mail-archive.com/progliste@ml.free.fr/
>> 
>> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
>> 
>> Pour voir les archives de la liste :
>> http://www.mail-archive.com/progliste@ml.free.fr/
>> 
>> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
> 
> Pour voir les archives de la liste :
> http://www.mail-archive.com/progliste@ml.free.fr/
> 
> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
> 
> Pour voir les archives de la liste :
> http://www.mail-archive.com/progliste@ml.free.fr/
> 
> 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�.
> <view.php>

Progliste :
Pour se d�sinscrire de la liste : 
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/       

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�.
        
        

Répondre à