Version complète: sur le forum Webmaster Hub : Mysql affichage quand id identique
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
michmuch51
Salut les hubiens,

je suis à la recherche d'un petit truc tout simple concernant une requete sql
j'ai un tableau se presentant ainsi:

CITATION
MON_tableau

art_id    ninnin_id
1        34
2        45
3        56
4        78
4        79
4        58


je fait la requete suivante:
CODE
$k = mysql_query("select art_id,ninin_id from MON_tableau where art_id=4");
$d = mysql_fetch_object($k);



et je souhaite afficher les trois ninnin_id du art_id 4 mais lorsque je fais:
<?=$d->ninnin_id?>

j'ai seulement le 78 qui s'affiche alors que je souhaiterai afficher 78,79,58 huh.gif
(bon il est clair que je fais mes premiers pas tongue.gif )

Vous avez une idée?
Dan
Salut,

C'est normal vu que tu fais un seul mysql_fetch_object. Il te sort donc uniquement le premier vu que c'est celui que tu demandes.

Il faut mettre ton mysql_fetch_object dans une boucle while, comme ceci:
while($d = mysql_fetch_object($k)) {
print $d->ninnin_id."<br />";
}

Dan
michmuch51
Excellent Dan laugh.gif

Merci beaucoup, encore une fois sauvé par le hub wink.gif
michmuch51
Bonjour les Hubiens,

je fais un petit up de ce post car ca fait un moment que j'ai un petit pb que je laisse trainer, en utilisant la solution ci-dessous (qui est très efficace), il me manque toujours le premier résultat de la bdd.

Cad qu'il m'affiche toutes les données que je souhaite en faisant la requête sauf la première blink.gif

Je m'en suis aperçu seulement il y a quelques jours... Y a un truc que j'ai mal fait?


CITATION(Dan @ jeudi 29 décembre 2005, 12h40)
Il faut mettre ton mysql_fetch_object dans une boucle while, comme ceci:
while($d = mysql_fetch_object($k)) {
    print $d->ninnin_id."<br />";
}


*
NorSeb
Bonjour,

Peut être as-tu un mysql_fetch_objet avant ton while ?
Dan
CITATION(NorSeb @ jeudi 16 février 2006, 09h25)
Peut être as-tu un mysql_fetch_objet avant ton while ?
*

C'est exactement ce à quoi cela fait penser...
Il aura probablement ajouté la boucle en laissant le premier fetch_object en place wink.gif
michmuch51
CITATION(NorSeb @ jeudi 16 février 2006, 09h25)
Peut être as-tu un mysql_fetch_objet avant ton while ?
*


Merci, en effet c'était ça, par contre le pb c'est que je m'en servait pour afficher un autre résultat avant la boucle while...
je vais m'y replonger...

Merci encore wink.gif
NorSeb
Dans ce cas tu peux essayer de faire un
CODE
mysql_data_seek ($k, 0)
après ton premier mysql_fetch_object().
Cela devrait "rembobiner" avant l'entrée dans la boucle while.
michmuch51
CITATION(NorSeb @ jeudi 16 février 2006, 10h21)
Dans ce cas tu peux essayer de faire un
CODE
mysql_data_seek ($k, 0)
après ton premier mysql_fetch_object().
Cela devrait "rembobiner" avant l'entrée dans la boucle while.
*



Ok merci, ca marche nikel, ca m'affiche "1" où j'ai placer le
CODE
mysql_data_seek ($k, 0)
mais bon l'essentiel c'est que ca tourne smile.gif
NorSeb
Le "1" affiché indique que la fonction a bien fonctionnée. Mais normalement, si l'appelle "comme ça" ca ne devrait rien afficher... sauf si tu as mis un echo devant ou un print
michmuch51
Le echo est placé bien avant, je ne pense pas qu'il agisse sur la fonction que j'ai isolé.

Mais ce n'est pas grave, c'est dans une interface admin donc seul le webmaster y a acces, le "1" ne dérange en rien... ^_^
Dan
Remplace cette ligne par:
CODE
$dummy=mysql_data_seek ($k, 0)

et tu n'auras plus le "1" wink.gif

Dan
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.