2010-10-07 2 views
1

Nous avons ce code:

$rowArray; 
$rowID = 1; 
$query = "SELECT idCentros FROM centros"; 
$result = mysql_query($query); 
$numrows=mysql_num_rows($result); 

while($row = mysql_fetch_array($result)){  
     $rowArray[$rowID] = $row['idCentros']; 
     $rowID = $rowID +1; 
    } 

$ retourne 4 numrows (les lignes que nous avons dans ce tableau) ... mais pour une raison inconnue la boucle commence à récupérer la 2º rangée suivante, il récupère la 4º rangée et puis il termine la boucle ($ row = false). Comme nous comprenons ce code est générique et la définition de la table est comme ceci:

column idcentros int(11)  pk notnull autoincremental 
column nombre mediumtext 

Qu'est-ce qui pourrait se passer? Merci à l'avance ...

+0

J'ai déjà eu ce problème, je n'ai jamais compris ce qui n'allait pas, mais l'utilisation de "mysql_fetch_assoc" au lieu de "mysql_fetch_array" a fonctionné pour moi. –

+0

J'ai exécuté le même code dans l'exemple de projet à partir duquel j'ai basé et il le fait ok .... les bases de données sont dans la même instance mysql, les deux projets exécutés à partir du même environnement ... que diable? : S –

Répondre

0

essayez ceci:

$query = "SELECT idCentros FROM centros"; 
$result = mysql_query($query); 
$numrows=mysql_num_rows($result); 
$rowArray = array(); 
while($row = mysql_fetch_array($result)) 
{ 
    array_push($rowArray,$row); 
} 
+0

Avec votre code, il commence maintenant sur la 3ème ligne et ensuite il sort de la boucle (car il n'y a pas de 5ème rangée à récupérer ...) Il saute toujours une ligne après la récupération et dans ce cas commence dans la 3ème rangée: S –

0

Je ne vois pas pourquoi le code ci-dessus ne devrait pas fonctionner, mais ... voici comment je le ferais:

$rowArray = array(); 
$query = "SELECT idCentros FROM centros"; 
$result = mysql_query($query); 
$numrows=mysql_num_rows($result); 

while($row = mysql_fetch_row($result)){ 
     $rowArray[] = $row[0]; 
} 

... Je crois que vous avez $rowID mis à 1 juste pour la visualisation plus tard, mais c'est inutile - vous devriez utiliser des listes HTML ou une variable $counter++ pour la sortie.

Questions connexes