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

Langage PHP Discussion :

Une fonction qui renvoie plusieurs valeurs ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 54
    Par défaut Une fonction qui renvoie plusieurs valeurs ?
    Bonjour

    Je n'arrive pas à créer une fonction qui me retourne plus de 2 champs d'une table.

    Voici l'explication :

    J'ai crée fonction qui récupère 3 champs de plusieurs valeurs dans une base de données.

    Ma base contient les champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    id_table
    champ1
    champ2
    J'ai crée une fonction qui recupere les différentes entrées de cette table.

    Dans cette fonction je déclare un tableau
    J'arrive à injecter id_table et champ1 dans ce tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while ($row = mysql_fetch_array($req)) {
    $id_table = $row["id_table"];
    $champ1 = $row["champ1"];
    $champ2 = $row["champ2"];
    $tableau[$id_table] = $champ1;
    }
    return $tableau;
    Mais comment faire pour récupérer également la valeur de $champ2 ?

    Merci de votre aide !

  2. #2
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Bonjour,

    il existe plusieurs façon de faire...
    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
    function getMaTable() 
    {
       $toReturn=array();
     
       // QUERY
     
       while ($row = mysql_fetch_array($req)) 
       {
          $toReturn[] = array($row["id_table"], $row["champ1"], $row["champ2"]);
       }
     
       return $toReturn;
    }
     
     
    $test= getMaTable();
    foreach($test as $t) {
       list($id_table, $champ1, $champ2) = $t; 
     
       echo "id_table : ".$id_table."<br/>";
       echo "champ1 : ".$champ1."<br/>";
       echo "champ2 : ".$champ2."<br/><br/>";
     
    }

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 54
    Par défaut
    Cool merci, je vais tester et voir si cela fonctionne

    Et comment faire pour afficher les résultats ?

    Car d'habitude je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $mon_tableau = getMaTable() ;
    foreach($mon_tableau as $id_table=>$champ1)
    	    { 	    
    			echo "$id_table : $champ1 ";
    		}
    Mais là je ne vois pas comment afficher aussi champ2

    Merci

  4. #4
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    regardes bien en bas du code que je t'ai mis...

    [edit]
    oups, j'ai mal lu...

    alors tu peux faire aussi comme tu avais l'habitude :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    function getMaTable() 
    {
       $toReturn=array();
     
       // QUERY
     
       while ($row = mysql_fetch_array($req)) 
       {
          $toReturn[] = array("id_table" => $row["id_table"], "champ1" => $row["champ1"], "champ2" => $row["champ2"]);
       }
     
       return $toReturn;
    }
     
     
    $test= getMaTable();
    foreach($test as $t) {
       foreach ($t as $key => $item) { 
          echo $key." : ".stripslashes($item)."<br/>";
       }
    }
    bon développement


    [/edit]


  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pourquoi pas faire direct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $toReturn[] = $row;
    avec un mysql_fetch_assoc

  6. #6
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    pourquoi pas faire direct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $toReturn[] = $row;
    avec un mysql_fetch_assoc
    peut-être parce que cela part d'une question bien précise ( faut y aller en douceur...)


  7. #7
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 54
    Par défaut
    C'est nickel ! Merci

    En effet je n'avais pas vu le code que tu proposais pour afficher les résultats

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 05/02/2015, 15h47
  2. Fonction qui retourne plusieurs valeurs !
    Par casafa dans le forum C++
    Réponses: 20
    Dernier message: 23/04/2014, 17h56
  3. [WD17] Créer une procédure qui renvoie plusieurs valeurs
    Par meganulos dans le forum WinDev
    Réponses: 9
    Dernier message: 27/02/2013, 21h21
  4. Fonction d'une DLL qui retourne plusieur valeur
    Par vtk37 dans le forum Débuter
    Réponses: 9
    Dernier message: 27/05/2009, 11h01
  5. [Système] Fonction qui renvoie plusieurs valeurs
    Par sebhm dans le forum Langage
    Réponses: 6
    Dernier message: 26/01/2007, 09h43

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