[Résolu] ma requête oublie le premier enregistrement...

Eléphanteau du PHP | 35 Messages

13 févr. 2008, 01:11

Salut,

J'ai une table avec un champ 'nom' (de Alfred à Zanzibar) et je désire tout simplement faire un sortie écran de la table, classée alphabetiquement par noms...
Jusque là rien de bien compliqué :)

mon code:
<?php 
	$sql = "SELECT * FROM membres ORDER BY nom"; 
  	$req = mysql_query($sql, $cnx); 
	while ($rslt = mysql_fetch_assoc($req)){
		echo $rslt['nom'].'<br />';
	}
?>
et bien il me manque Albert (le premier enregistrement)...
et si je fais ça:
<?php 
	$sql = "SELECT * FROM membres ORDER BY nom DESC"; 
  	$req = mysql_query($sql, $cnx); 
	while ($rslt = mysql_fetch_assoc($req)){
		echo $rslt['nom'].'<br />';
	}
?>
il me manque Zanzibar !!!
Je ne vois pas du tout pourquoi HELP!!!

A noter que ma base est de type MyISAm en UTF8-bin
Modifié en dernier par zest le 13 févr. 2008, 01:34, modifié 2 fois.
Peu de gens sont dignes de ne croire à rien.

ViPHP
AB
ViPHP | 5818 Messages

13 févr. 2008, 01:15

<?php 
	$sql = "SELECT * FROM membres ORDER BY nom"; 
  	$req = mysql_query($sql, $cnx); 
	while ($rslt = mysql_fetch_assoc($req)){
		echo $rslt['nom'].'<br />';
	}
?>
comme ça ça ira mieux

EDIT lit la doc de mysql_fetch_assoc() . Cela retourne le résultat puis avance le pointeur à la ligne suivante. Donc quand tu commences ta boucle avec ton script précédent tu commences à lire le deuxième résultat puisque tu avais déjà fait une première fois $rslt = mysql_fetch_assoc($req); :wink:

Eléphanteau du PHP | 35 Messages

13 févr. 2008, 01:21

Non c'est pas ça...
un erreur de copier/coller...je viens de corriger :)
en fait voici le code exact...
 $sql = "SELECT * FROM membres WHERE yLast=2007 ORDER BY nom"; 
 $req = mysql_query($sql, $cnx); 
 $rslt = mysql_fetch_assoc($req);		
	while ($rslt = mysql_fetch_assoc($req)){
	  echo '<p><b>'.$rslt['nom'].'</b>&nbsp;'.$rslt['prenom'];
	  echo '<input type="checkbox" name="convok['.$i.']" value="'.$rslt['id'].'">';
	  echo '</p>';
	}
et là quelques chose cloche...

Bon j'ai trouvé et je vais au LIT....la fatique :?
effctivement je corrige sur PHP France, mais chez moi NON!!!
$rslt = mysql_fetch_assoc($req)
en double!!!

Désolé et bonne nuit!!!
[/quote]
Modifié en dernier par zest le 13 févr. 2008, 01:32, modifié 1 fois.
Peu de gens sont dignes de ne croire à rien.

ViPHP
AB
ViPHP | 5818 Messages

13 févr. 2008, 01:31

Ah bah tu avais du faire la même erreur de copier/coller dans ton script car c'est typiquement dans ce genre de situation que la requête "oublie" le premier enregistrement.

Eléphanteau du PHP | 35 Messages

13 févr. 2008, 01:33

Non c'est pas ça...
un erreur de copier/coller...je viens de corriger :)
en fait voici le code exact...
 $sql = "SELECT * FROM membres WHERE yLast=2007 ORDER BY nom"; 
 $req = mysql_query($sql, $cnx); 
 $rslt = mysql_fetch_assoc($req);		
	while ($rslt = mysql_fetch_assoc($req)){
	  echo '<p><b>'.$rslt['nom'].'</b>&nbsp;'.$rslt['prenom'];
	  echo '<input type="checkbox" name="convok['.$i.']" value="'.$rslt['id'].'">';
	  echo '</p>';
	}
et là quelques chose cloche...

Bon j'ai trouvé et je vais au LIT....la fatique :?
effctivement je corrige sur PHP France, mais chez moi NON!!!
$rslt = mysql_fetch_assoc($req)
en double!!!

Désolé et bonne nuit!!!
Peu de gens sont dignes de ne croire à rien.