retrouver et afficher un champ d'un tableau issu d'un mysql_

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : retrouver et afficher un champ d'un tableau issu d'un mysql_

par maver » 22 mars 2007, 12:25

Voilà juste pour remercier à ceux qui m'ont répondu ici. Après pas mal de recherches, il m'est apparu évident que ce que je cherchais à faire n'était pas dans mes compétences, et qu'il y avait plus simple. Je pouvais sans risquer de trop charger la barque, faire plusieurs querys par page. Dans mon cas 5 ou six. Et donc atteindre directement le champ de ma base de donnée dont j'ai besoin.

maver

P.S: Je rappelle que mon intention de départ était de n'avoir qu'un seul query. Ensuite de ranger le résultat dans un array alors même que le résultat de mon query était disposé sur plusieurs lignes. Dans mon cas une boucle n'aurait servi à rien. Car je souhaitais afficher chaque ligne de mon tableau à des endroits totalement différents de ma page et surtout, de manière totalement indépendante des autres lignes de ma boucle. Voilà ce qui arrive quand on essaie faire compliqué alors qu'il y a plus simple.

par Ryle » 14 mars 2007, 12:36

Cette fonction permet effectivement d'accéder à n'importe lequel des enregistrements, mais personnellement, je ne vois pas comment tu peux savoir sur quelle ligne sera le résultat qui t'interesse (et dans la mesure ou tu le saurais, je ne vois pas pourquoi ne pas avoir ramené que celle là :))

La boucle me semble donc nécessaire pour parcourir l'ensemble des enregistrements retournés, ceci dit, il existe de nombreuses fonctions d'agrégation en SQL pour te permettre de ramener sur une seule ligne la donnée qui t'interesse... Tout dépend des données que tu as et de ce que tu veux en faire :)

par raptor » 14 mars 2007, 11:58

Bien sur que si tu peux.
Utilise mysql_data_seek();

@+

par maver » 14 mars 2007, 11:48

l'invité ci-dessus, c'est moi. J'ai dû faire une fausse manip pour que mon nom n'apparaisse pas. Ensuite ENCORE une fausse manip pour que je ne sois pas averti de la réponse, donc je n'en prends connaissance que maintenant. Merci beaucoup d'avoir éclairé ma laterne. Cela confirme que dans ce cas de figure, je ne peux me passer d'une boucle. Il me semble juste limitatif que l'on puisse pas accéder de manière ponctuelle à un seul champ du tableau


maver
PS: en me relisant je me dis que ma dernière phrase n'est pas tout à fait académique. Oui, mais, limitatif...bravitude....ça se tient tout ça.

par Ryle » 12 mars 2007, 11:23

En fait, tout ce qu'il te suffit de savoir, c'est qu'après avoir lu les données de ta première ligne de résultats, les fonctions mysql_fetch_* se placent automatiquement sur l'enregistrement suivant. Ainsi, pour accéder à la deuxième ligne, il te suffit de faire un second mysql_fetch_array($recherche) après le premier, un troisième pour la troisième ligne, etc. La fonction retournant FALSE lorsqu'il n'y a plus de lignes.

Mais comme c'est galère de devoir en faire un par ligne, et qu'on ne sait généralement pas combien de lignes seront ramenées par la requête, on l'utilise tuot simplement dans un while :
while ($maligne = mysql_fetch_array($recherche)) {
  echo $maligne['champB'] . '<br />'; // affichera à chaque itération, le champB de la ligne concernée
}
Et lorsqu'il n'y aura plus de ligne à lire, le test sera faux et tu sortiras du while :)

retrouver et afficher un champ d'un tableau issu d'un mysql_

par Invité » 11 mars 2007, 20:07

Voilà. J'ai fait un query sur ma base de donnée et j'obtiens quelque chose comme ceci (Je précise cependant que je n'affiche pas le résultat, car j'en ai pas besoin tel quel) :

champA champB champC champD

"données A" " 19 " " 50 " " 69 "
"données A" " 70 " " 12 " " 18 "
"données A" " 54 " " 87 " " 44 "


la recherche ayant portée sur "données A".
Je souhaite maintenant savoir comment atteindre un de ces champs.

Je m'explique : J'avais pour habitude de faire des recherches sur ma base, qui me donnaient en résultat qu'une seule ligne. Donc pour atteindre un des champs du résultat, je n'avais que ça à faire :

$maligne=mysql_fetch_array($recherche) or die (" ");
et pour afficher un champ : echo $maligne [champB];

C'était pratique, en plus des exemples comme ça y'en a des milliards sur internet. Mais ils concernent généralement des cas simples ou le tableau se réduit à une seule ligne. Je recherche quelquechose d'aussi simple, quitte à ajouter un index ou ce qu'il faut d'autre, pour atteindre le champ de mon choix dans mon tableau à plusieurs lignes.
Malgré pas mal de recherches avec mon ami Google, je ne suis jamais tombé sur un exemple semblable au cas qui me préoccupe aujourd'hui.
Voilà, si cette question a déjà été traité 150 fois sur ce forum, j'accepte un coup de pied virtuel, mais indiquez moi ou trouver la réponse ou le tuto. BIG merci.

maver