IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Retrouver et afficher un champ d'un tableau issu d'un mysql_query [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Retrouver et afficher un champ d'un tableau issu d'un mysql_query
    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.

    Voilà 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 chamlps 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.
    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

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while($maligne=mysql_fetch_array($recherche)){
    if($maligne['champA']==$ma_recherche){
    echo $maligne ['champB'];
    break;
    }
    }
    dit toi que mysql_fetch_array prend la ligne d'un tableau où se trouve le pointeur et place le pointeur sur la ligne suivante

    par défaut la premiere fois le pointeur est sur le premiere ligne du tableau.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup pour cette réponse.
    Cependant devoir faire une boucle pour retrouver un champ de mon tableau, c'est justement ce que je veux éviter. Je me dis (je me dis parfois des choses bizarres), qu'il doit y avoir un moyen plus simple.

    J'ai donc mon tableau, suite à ma recherche (mysql_query).

    Je range le résultat dans une var à l'aide de mysql_fetch_array . Bon, d'après ce que tu dis, maximenet, et le manuel php aussi d'ailleurs mais en plus compliqué, mysql_fetch_array ne prend qu'une ligne de mon beau tableau au lieu de tout prendre. Bon, mais à la réflexion, je ne suis plus tellement ami avec mysql_fetch_array, je veux donc bien utiliser une autre fonction. L'essentiel est que je puisse ranger mon résultat dans une variable, et accéder facilement, simplement, aux champs qui composent mon tableau sans autre opération (ni nouvelle query, ni boucle, ni prière)

    Quelquechose d'aussi simple que :

    echo $montableau [champB];

    quitte à ajouter un index, ou tout ce qu'il faudra.

    Ca doit exister, non ?

    Rappel: voilà de quoi il a l'air mon tableau :

    champA champB champC champD

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

    Maver

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    euhhh d'après moi çà n'existe pas.

    Pour info à une certaine époque où j'apprenais le php je me suis posé la meme question que toi tt de suite.

    dit toi que dans tous les cas même si elle existait elle ferai une boucle sur chaque ligne retourné par la bdd.

    voilà. a+

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Je n'ai absolument pas compris ta demande

    Si tu désires une fonction qui renvoit directement un champ dans un tableau, il va falloir la créer (en masquant l'accès à la base) ^^

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Points : 44
    Points
    44
    Par défaut
    Salut,
    Je n'ai peut-être pas compris le problème.
    Mais voilà peut-être une piste côté requête SQL. Ce que je fais et qui marche en général (je débute en php) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $sql="SELECT 
            zoneA, zoneB, zoneC 
            FROM MonFichier;        
            $id=mysql_query($sql) 
                  or die( "Exécution requête MonFichier impossible.");
    et pour l'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while($record = mysql_fetch_object($id)) { ?>        
                    <TR>
                        <TD><?php echo $record->zoneA; ?></TD>
                        <TD><?php echo $record->zoneB; ?></TD>
                        <TD><?php echo $record->zoneC; ?></TD>
    j'espère avoir répondu à ton problème ?

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Faire compliqué alors qu'il ya plus simple
    Voilà juste pour remercier à ceux qui ont répondu ici. Après pas mal de recherches sur le net, 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.

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    ah ben tu peux toujours faire une boucle et ranger toutes tes lignes dans un tableau, et ensuite tu peux bien afficher la donnée que tu veux où tu veux sur ta page.

    c'est bien plus rapide que de faire 5 ou 6 requêtes

  9. #9
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Ah ok. Les requêtes c'est donc pas une aussi bonne solution que ça alors. Quelle fonction dois-je utiliser pour tout ranger dans un array. Est-ce que le couple while pour la boucle et mysql_fetch_object ou array est adéquat. En fait mon grand souci c'est comment ensuite atteindre la ligne et le champ qui m'intéresse.
    Les fonctions mysql_fetch_object/array/row pointant toujours sur une seule ligne, comment récupérer les infos qui par exemple sont sur la ligne 3, et uniquement cette ligne là.

  10. #10
    Membre régulier Avatar de a_me
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 84
    Points : 80
    Points
    80
    Par défaut
    tu peux utiliser la fonction mysql_result de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = mysql_result($id_rslt, $num_ligne, $champ);
    -$id_rslt est l'id du résultat retournée par mysql_query
    -$num_ligne est le numéro de la ligne désirée du resultat retourné par la requête, à partir de 0
    -$champ c'est le nom du champ désiré, ou un numéro indiquant son index, cette valeur est optionnelle, si tu ne la spécifie pas, la variable $resultat sera un tableau contenant tous les champs présents dans ta requête.

  11. #11
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Merci Merci Merci et Pardon
    Oui, cela peut paraitre bizarre de voir un message aussi longtemps après, mais je me suis apeçu de la dernière réponse qu'il y a deux semaines environ (allez savoir pourquoi...parfois on change de priorités).
    J'ai implanté cette solution, et devinez quoi. C'est exactement ce qu'il me fallait. Ca marche à merveille. Alors comme ça m'étonne toujours quand des internautes ne prennent même pas la peine de remercier ceux qui se sont penchés sur leur problème, je rattrappe fissa le coup. Merci, merci, merci. I'm happy.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/01/2011, 15h14
  2. [Tableaux] Afficher champ d'un tableau
    Par marty499 dans le forum Langage
    Réponses: 3
    Dernier message: 18/04/2008, 15h09
  3. Afficher un exemple dans un tableau en fonction d'un champs de formulaire
    Par kilian67 dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 12/03/2008, 14h24
  4. [MySQL] Comment affiché un résultat avec plusieurs lignes et plusieurs champs dans un tableau
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 15/05/2007, 14h19
  5. [MySQL] Afficher champs vides dans tableau
    Par rasmulti dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 23/02/2007, 01h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo