PHP : foreach génère un tableau incorrecte

Fermé
sopen - Modifié par sopen le 24/04/2012 à 11:19
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 24 avril 2012 à 11:33
Bonjour,
Alors voila j'explique un problème que je ne comprend PAS. Je l'ai résolu (je pense) en faisant un test (is_string) sur $key mais bon... j'aimerais comprendre ^^
----------------------------------------------------------------
ma page web générée :
----------------------------------------------------------------
1 : La variable id est definie et de valeur : 3
2 : La variable 0 est definie et de valeur : 3
3 : La variable pseudo est definie et de valeur : xxxx
4 : La variable 1 est definie et de valeur : xxxx
5 : La variable email est definie et de valeur : xxxx
6 : La variable 2 est definie et de valeur : xxxx
7 : La variable mdp est definie et de valeur : xxxx
8 : La variable 3 est definie et de valeur : xxxx
9 : La variable dateInscription est definie et de valeur : 2012-04-23
10 : La variable 4 est definie et de valeur : 2012-04-23
11 : La variable energies est definie et de valeur : 100
12 : La variable 5 est definie et de valeur : 100
13 : La variable puissance est definie et de valeur : 100
14 : La variable 6 est definie et de valeur : 100
----------------------------------------------------------------

La base de donnée biensur ne contient que les champs id, pseudo, email.... et pas de '1' etc..
----------------------------------------------------------------
Voici le code php :
----------------------------------------------------------------
$reponse = $bdd->query('SELECT * FROM joueurs WHERE pseudo=\''.$pseudo.'\' AND mdp=\''.$mdp.'\' LIMIT 1');

$donnees = $reponse->fetch();

if (empty($donnees)) $bloquer=3;

if (!$bloquer) {
$_SESSION['co']=1;

$i=1;
foreach ($donnees as $key => $sortieBDD) {

if (is_string($key)) { $_SESSION[$key]=$sortieBDD;
echo $i.' : La variable '.$key.' est definie et de valeur : '.$_SESSION[$key].' <br/>'; }

$i++;
}
----------------------------------------------------------------


A voir également:

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 avril 2012 à 11:33
$donnees = $reponse->fetch();
est ce que dans cette ligne tu ne peux preciser ASSOC

avec le methode "classique" mysql_fetch_array sort les enregistrements en index numérique et aussi en index string ( c à d $donnees[0] et $donnees['id'])

pour avoir seulement les index string il faut utiliser mysql_fetch_assoc
0