Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PHP/MySQL : impossible d'afficher la premiere ligne de ma table

5 réponses
Avatar
Eric Demeester
Bonjour,

Question de débutant je crains, mais ça fait des heures que je cherche
sans touver alors je fais appel à vos lumières (ou à des pointeurs si la
question est une FAQ).

En résumé, je ne parviens pas à afficher le premier enregistrement d'une
table toute simple. Je vois cet enregistrement avec phpMyAdmin, je peux
l'afficher si je l'appelle directement dans un formulaire, le modifier,
bref tout baigne, sauf qu'impossible de l'afficher dans une liste.

Voici mon code :

// Interrogation de la base de données
$requete = "SELECT * FROM reunions ORDER BY reu_id ASC";
$reponse = mysql_query($requete, $mabase) or die(mysql_error());
$donnees = mysql_fetch_array($reponse);
$nb_lignes = mysql_num_rows($reponse);

reu_id, c'est l'identifiant unique, mais j'ai testé avec d'autres
champs, sans ORDER BY du tout, même combat.

$nb_lignes retourne bien 25, ce qui correspond au nombre
d'enregistrements effectivement présents dans ma table

Le code pour afficher mon tableau maintenant :

<table>
<tr>
<th>Date</th>
<th>Ville</th>
<th>Animateurs</th>
<th>Salle</th>
</tr>
<!-- remplissage de la table -->
<?php while ($donnees = mysql_fetch_array($reponse)) { ?>
<tr>
<td><?php echo $donnees['reu_date'] ?></td>
<td><?php echo $donnees['reu_ville']; ?></td>
<td><?php echo $donnees['reu_animateurs']; ?></td>
<td><?php echo $donnees['reu_salle']; ?></td>
</tr>
<?php } ?>
</table>

L'enregistrement ayant l'identifiant 1 (le premier de la table donc)
refuse de s'afficher.

Où est l'erreur ?

Au secours je deviens fou ! :)

--
Eric

5 réponses

Avatar
P'tit Marcel
Eric Demeester wrote:
En résumé, je ne parviens pas à afficher le premier enregistrement d'une
table toute simple. Je vois cet enregistrement avec phpMyAdmin, je peux
l'afficher si je l'appelle directement dans un formulaire, le modifier,
bref tout baigne, sauf qu'impossible de l'afficher dans une liste.

Voici mon code :

// Interrogation de la base de données
$requete = "SELECT * FROM reunions ORDER BY reu_id ASC";
$reponse = mysql_query($requete, $mabase) or die(mysql_error());
$donnees = mysql_fetch_array($reponse);


vire la ligne ci-dessus car tu as déjà celle-là :

<?php while ($donnees = mysql_fetch_array($reponse)) { ?>


eça
--
P'tit Marcel

Avatar
Denis Beauregard
Le 25 Jun 2005 19:10:43 GMT, Eric Demeester <eric+
écrivait dans fr.comp.lang.php:

L'enregistrement ayant l'identifiant 1 (le premier de la table donc)
refuse de s'afficher.


La table commence par zéro, pas par un.


Denis

Avatar
bobe
Eric Demeester wrote:

En résumé, je ne parviens pas à afficher le premier enregistrement d'une
table toute simple. Je vois cet enregistrement avec phpMyAdmin, je peux
l'afficher si je l'appelle directement dans un formulaire, le modifier,
bref tout baigne, sauf qu'impossible de l'afficher dans une liste.



C'est normal puisque tu fais:

$donnees = mysql_fetch_array($reponse);

Et ensuite, à la première itération de ta boucle, tu écrases le contenu
de $donnees avec le second résultat de la requète. :)

Avatar
Bruno Baguette
Bonjour,

Question de débutant je crains, mais ça fait des heures que je cherche
sans touver alors je fais appel à vos lumières (ou à des pointeurs si la
question est une FAQ).

En résumé, je ne parviens pas à afficher le premier enregistrement d'une
table toute simple. Je vois cet enregistrement avec phpMyAdmin, je peux
l'afficher si je l'appelle directement dans un formulaire, le modifier,
bref tout baigne, sauf qu'impossible de l'afficher dans une liste.

Voici mon code :

// Interrogation de la base de données
$requete = "SELECT * FROM reunions ORDER BY reu_id ASC";
$reponse = mysql_query($requete, $mabase) or die(mysql_error());
$donnees = mysql_fetch_array($reponse);


STOOOOP ! Le coupable est trouvé !

Retirez donc cette ligne : $donnees = mysql_fetch_array($reponse); C'est
elle qui "consomme" la 1er ligne du résultat de votre requête SQL.

Laissez ensuite le reste de votre intact, et vos yeux pourront
s'émerveiller de voir la ligne tant attendue s'afficher ! :-)

Petit conseil pour la suite : évitez comme la peste le SELECT *,
remplacez donc le * par le nom du/des champs souhaités. Cela rendra
votre code plus propre et vous épargnera bien des soucis.

Dans votre cas, ca devrait donner :

$requete = 'SELECT reu_date, reu_ville, reu_animateurs, reu_salle FROM
reunions ORDER BY reu_id ASC';

Au secours je deviens fou ! :)


Mais non :-)


Bon samedi soir et bon apprentissage du PHP :-)

--
Bruno BAGUETTE -

Avatar
Eric Demeester
dans (in) fr.comp.lang.php, Bruno Baguette
ecrivait (wrote) :

Bonjour,

Tout d'abord, je tiens à remercier les personnes ayant eu la gentillesse
de répondre à ma question de neuneu.

$donnees = mysql_fetch_array($reponse);
STOOOOP ! Le coupable est trouvé !


Retirez donc cette ligne : $donnees = mysql_fetch_array($reponse); C'est
elle qui "consomme" la 1er ligne du résultat de votre requête SQL.


Oui, je suis une buse, j'aurais dù penser à ça.

Petit conseil pour la suite : évitez comme la peste le SELECT *,
remplacez donc le * par le nom du/des champs souhaités. Cela rendra
votre code plus propre et vous épargnera bien des soucis.


Je procède déjà de la façon que vous préconisez, mais dans ce cas
précis, comme ma table ne contient que les champs évoqués et que je
souhaite tous les afficher, j'ai eu la flemme :)

Bon samedi soir et bon apprentissage du PHP :-)


Il reste manifestement du boulot :)

Bon dimanche.

--
Eric