PHP - Problème récupération données d'une BDD [Résolu/Fermé]

Signaler
-
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
-
Bonjour,

Je suis complètement désespérée. Pour une raison que j'ignore, je ne parviens pas à afficher le résultat d'une recherche dans ma BDD. Voici mon bout de code :


$login2=$_POST["log_recup"];
$mail2=$_POST["mail_recup"];
if(!mysql_connect("localhost","root","mysql")){
echo "Connexion impossible";
exit();
}
else {
echo "pouet";
mysql_select_db('site');
$requete = "SELECT * FROM utilisateurs WHERE login='.$login2.'";
$valeur = mysql_query($requete);
while($tableau = mysql_fetch_array($valeur)){
echo "AAAAAAAAAAAAARG";
echo $donnees['num_etudiant'];
}
}

Je n'y comprends rien du tout. J'ai testé mes variables login2 et mail2, les données sont bien récupérées de ma page html. On rentre bien dans le esle vu que "pouet" est affiché (on sent le ras le bol ...). Par contre, "AAAAAAAAAAAARG" ne s'affiche pas, donc on n'entre pas dans le while ... Sauf que je ne comprends absolument pas pourquoi. La requête s'exécute bien, j'ai affiché valeur (truc id#3) ...

Si vous avez une idée, je suis preneuse !!

Merci d'avance ...

5 réponses

Messages postés
277
Date d'inscription
lundi 14 février 2005
Statut
Membre
Dernière intervention
14 août 2009
39
salut
c'est surement que ta oublié une ligne juste aprés $requete = ...................

mysql_fetch_array($requete);
Zut j'ai oublié de changer la ligne echo $donnees['num_etudiant']; en echo $tableau['num_etudiant']; mais ça ne change rien à mon souci ...
Ben si, dans mon while oO
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
56
t'as affiché une erreur :D

sûrement dûe à ça:

$requete = "SELECT * FROM utilisateurs WHERE login='.$login2.'";

des points de concaténation? ici? pour quoi faire? retire les et dis nous^^

PS: $query=mysql_query($sql) or die(mysql_error());

ça t'aidera dans tes debugs
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
<?php

$login2=$_POST["log_recup"];
$mail2=$_POST["mail_recup"];
//une petite verif
echo "Login reçu: ".$login2;
// une methode plus simple et plus efficace pour debugger avec trace des erreurs mysql
mysql_connect("localhost","root","mysql") or die ("Pb connexion serveur ".mysql_error());
mysql_select_db('site')or die ("Pb selection base ".mysql_error());

$requete = "SELECT * FROM utilisateurs WHERE login='".$login2."'";
$reponse = mysql_query($requete)or die ("Pb avec la requette ".mysql_error());
//on va voir si il y a des réponses
$nbr_reponses=mysql_num_rows($reponse);
echo "Il y a :".$nbr_reponses. "reponse(s)";

//affichage
while($ligne = mysql_fetch_array($reponse)){
	echo $ligne['num_etudiant']; //tu as bien le champ num_etudiant dans ta table utilisateurs
}
Pourquoi mettre des points ? Parce que mon prof m'a dit de les mettre ... -_-

Donc évidemment, vous vous en doutez, ça marche là .......

Merci beaucoup ^^ *se sent plus que ridicule*
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
56
mdr te sens pas ridicule :D les profs sont pas infaillibles^^
C'est une erreur qui peut être commune, donc aucune honte à avoir. N'oublis pas que ça concerne la concaténation les points avec les ' ou ", renseigne toi sur la question pour mieux comprendre l'idée^^