PHP : foreach génère un tableau incorrecte
sopen
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
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++;
}
----------------------------------------------------------------
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:
- PHP : foreach génère un tableau incorrecte
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
1 réponse
$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
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