affichage liste d'une base de donnée

Eléphant du PHP | 62 Messages

08 juin 2011, 19:24

Bonsoir.J'affiche une liste d'inscrits dans le navigateur par le biais d'une base de donnée mais le souci est que le premier nom de la liste n'est pas affiché alors qu'il est dans la liste de la BD.D'ou vient le problème ? merci.

Eléphant du PHP | 62 Messages

08 juin 2011, 21:26

Voici le fichier en question : Le jeu de caractere en importation est LATIN 1
nom varchar(100) ADEKE
prenom varchar(100) Gene
ne decimal(4,0) 1990
sexe varchar(1) F
pays varchar(5) ETH
dept tinyint(5) 0
club varchar(100) TEAM BEKKALI
paye varchar(4) oui
cm varchar(4) oui

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 juin 2011, 21:28

Si lorsque tu testes ta requête directement sur la base, le premier élément apparaît bien, c'est que tu dois faire appel à une fonction de type mysql_fetch_* juste avant de boucler pour afficher ta liste. Du coup le pointeur passe à l'enregistrement suivant avant de commencer à boucler...

En général c'est un if(mysql_fetch_*) avant le while qui traine et qui du coup te décale d'un enregistrement..
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 62 Messages

08 juin 2011, 22:06

En effet j'utilise :
while($liste = mysql_fetch_array($requete))
mais je n'ai pas de while ni de if(....)
je ne vois pas de quoi ça vient.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 juin 2011, 22:33

Montre nous ton code (au moins la partie entre l'execution de ta requete et l'affichage de ta liste), ce sera plus simple :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 62 Messages

08 juin 2011, 22:42

Le voici , j'ai changé les mot de passe et utilisateur.Merci
<?PHP
$connexion=mysql_connect("localhost","aaaaaaa","bbbbbb")OR die('Erreur de connexion');
mysql_select_db('courseapied')OR die('Erreur de sélection de la base');
$requete = mysql_query('SELECT *FROM listedesinscrits ORDER BY nom ASC') OR die('Erreur de la requête MySQL');
$liste = mysql_fetch_array($requete);
mysql_close()
?>

<?php
while($liste = mysql_fetch_array($requete))

{ ?>
<table>
<tr>
<td width="200"><?php echo $liste['nom'];?></td>
<td width="125"><?php echo $liste['prenom'];?></td>
<td width="35"><?php echo $liste['ne'];?></td>
<td width="20"><?php echo $liste['sexe'];?></td>
<td width="70"><?php echo $liste['pays'];?></td>
<td width= "20"><?php echo $liste['dept'];?></td>
<td width="300"><?php echo $liste['club'];?></td>
<td width="30"><?php echo $liste['paye'];?></td>
<td width="30"><?php echo $liste['cm'];?></td>
</tr>
</table>
<?php } ?>

</body>
</html>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 juin 2011, 11:28

Salut

Le premier s'affiche pas car il y a un mysql_fetch_array en dehors du while.
Tout appel a cette fonction fait avancer dans l'enjeux de resultat donc supprime le 1er et laisse seulement le while ;)

Autre chose le mysql_close devrait etre apres le traitement (apres le while donc) et tu devrait ajouter un mysql_free_result($requete); avant le mysql_close(); (donc aux deux lignes qui suivent la fin du while ;). )

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 62 Messages

09 juin 2011, 19:24

Salut Moogli
J'ai supprimé le premier mysql_fetch_array et maintenant tout marche merci vraiment je ne sais pas pourquoi je l'avais mis il faisait double emploi.Par contre ta deuxieme solution me met une erreur de syntaxe aux lignes ou je place les fonctions.Donc j'ai laissé comme s'était avant... si tu as une solution pour cela .merci.