Recherche infructueuse [Résolu]

Signaler
Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019
-
Messages postés
32948
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 juin 2021
-
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

Messages postés
32948
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 juin 2021
351
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
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Relis un peu ton code :
mysqli_query
mysql_num_rows
Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019

Bien vu !!!
J'ai fait des copier/coller et n'ai pas tout modifié !
Merci
il vaut mieux conclure les requetes sql par un point-virgule
Messages postés
32948
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 juin 2021
351
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 ! )???