Recherche infructueuse

Résolu
scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019 - 10 sept. 2014 à 18:57
jordane45 Messages postés 37515 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 mai 2023 - 16 sept. 2014 à 11:58
Bonjour,
L'icône WAMP est verte
Quand je vais sous phpMyAdmin, et que j'entre la requête SQL
select from voyage where Pseudo = 'toto'
l'enregistrement est bien trouvé à l'exécution

Quand je suis sous PHP:

if ($stmt = mysqli_prepare($connexion, $query)) {
// Exécution de la requête
mysqli_stmt_execute($stmt);
// Association des variables de résultat
mysqli_stmt_bind_result($stmt, $Col1,$Col2);
// Lecture des valeurs
while (mysqli_stmt_fetch($stmt)) {
echo ("Nom " . $Col1 ." voyage ".$Col2."<br>");
}
// Fermeture de la commande
mysqli_stmt_close($stmt);
echo ("<br>");
}
Tous les enregistrements sont listés, dont "toto"
Mais si je fais une recherche de "toto"

$reponse = mysqli_query($connexion, "SELECT * FROM voyage WHERE Pseudo = 'toto '" ) or die("Erreur à la recherche " .mysqli_error());
$NbrEng = mysql_num_rows($reponse);
echo "Recherch Il y a ".$NbrEng." enregistrement(s) dans la table voyage.<br>";
$donnees = mysql_fetch_array($reponse);
$Nom=$donnees['Pseudo'];
$Nombre=$donnees['Nombre'];
echo ("Cherché " .$Nom_W."<br> Trouvé Nom " . $Nom ." Wvoyage " .$Nombre."<br><br>");
Rien n'est trouvé !
Pourtant, je n'ai pas d'erreur !
Une idée ?

Cordialement
Sauveur

Windows 8.1 Professionnel 64 bits, processeur x64
Apache 2.4.9
PHP 5.5.12
MySQL 5.6.17PHP 5.5.12
MySQL 5.6.17

2 réponses

jordane45 Messages postés 37515 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 mai 2023 341
Modifié par jordane45 le 10/09/2014 à 19:06
Bonjour,


Lorsque l'on a des soucis de requêtes en PHP .. la première chose à faire est de faire un ECHO de la requête générée par la page ... puis de copier/coller cette requête dans PHPMyadmin... en général.. l'erreur saute aux yeux et/ou un message d'erreur apparait indiquant où regarder..


Donc, l'idéal est de séparer le chaine ( la requête) de l'instruction qui l'éxécute :

// Je sors la requête de l'éxécution:
//$sql= "SELECT * FROM voyage WHERE Pseudo =  'toto '" ;
// ET 
// Je la met en forme avec des retours à la ligne pour qu'elle soit plus lisible.
//
$sql= "SELECT * 
     FROM voyage 
     WHERE Pseudo =  'toto '" ;

// j'en fait un ECHO pour savoir ce qu'elle vaut une fois générée par la page web :

Echo "<br> La requête est : <br>".$sql."<br>";

// J'éxécute la requête :
$reponse = mysqli_query($connexion, $sql) or die("Erreur  " .mysqli_error());  
 $NbrEng = mysql_num_rows($reponse);




Enfin.. là comme ça... je peux déjà te dire que tu dois surement avoir un espace en trop à la fin de toto ....
'toto '
... est différent de :
'toto' 
..

Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 158
10 sept. 2014 à 19:13
Relis un peu ton code :
mysqli_query
mysql_num_rows
0
scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019
Modifié par scn68100 le 11/09/2014 à 07:31
Bien vu !!!
J'ai fait des copier/coller et n'ai pas tout modifié !
Merci
0
il vaut mieux conclure les requetes sql par un point-virgule
0
jordane45 Messages postés 37515 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 mai 2023 341
16 sept. 2014 à 11:58
il vaut mieux conclure les requetes sql par un point-virgule
Oui...certes..... mais quel est le rapport avec le souci rencontré ( et déjà résolu ! )???
0