2010-05-26 7 views
-4
$child= array(); 
$i = 0; 

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
    $child[i] = $row['userId']; 
    $i++; 
} 

$i = 0; 
while($i<=5) 
{ 
    echo $child[i]; 
    $i++; 
} 

Il imprime la même valeur.Quel est le problème avec ce code?

+0

Quelle est la requête dans $ result? –

Répondre

8

Vous utilisez i pour l'index de tableau au lieu de $i:

$child[i] 

Cela devrait être $child[$i]. Parce que le i dans $child[i] est interprété comme une constante (la valeur de la constante i est utilisée comme index) ou s'il n'y a pas une telle constante comme chaîne. Vous pouvez obtenir un vidage de variable/valeur avec var_dump.

+0

+1. Qu'est-il arrivé aux bons vieux jours où la première bonne réponse obtient le vote? – karim79

+0

Je ne sais pas ce qui est arrivé à ces jours-là, je n'ai pas voté sur moi-même. Peut-être que les gens ont aimé le smiley à la fin, je pense moi-même que cette réponse est mieux formatée (et postée 1 minute avant la mienne) donc ça devrait être au top. – CharlesLeaf

+0

Et encore une autre raison pour laquelle vous devriez tester avec le niveau d'erreur E_NOTICE défini ... – ircmaxell

6

vous avez oublié un i $ en $ enfant [i] .. devrait être $ enfant [$ i];)

1
$child= array(); 
$i = 0; 

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
    $child[$i] = $row['userId']; 
    $i++; 
} 

$i = 0; 
while($i<=5) 
{ 
    echo $child[$i]; 
    $i++; 
} 

Vous ne avez pas appelles i $, mais "i"

2

Si vous voulez des index numériques, vous pouvez faire sans $ i .. essayer ..

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
    $child[] = $row['userId']; 
} 

for($i=0;$i<5;$i++) 
{  
echo $child[$i].' <br />; 
} 

Espérons que cela aide.