Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/01/2011, 12h10   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2010
Messages : 43
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 43
Points : 10
Points : 10
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 :
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 :
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 !
chuckichucki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 12h29   #2
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

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

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonjour,

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

Code :
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/>";
 
}
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 13h01   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2010
Messages : 43
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 43
Points : 10
Points : 10
Cool merci, je vais tester et voir si cela fonctionne

Et comment faire pour afficher les résultats ?

Car d'habitude je fais

Code :
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
chuckichucki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 13h04   #4
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

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

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
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 :
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]

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 13h14   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
pourquoi pas faire direct :
Code :
1
2
 
$toReturn[] = $row;
avec un mysql_fetch_assoc
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 13h16   #6
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

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

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Citation:
Envoyé par stealth35 Voir le message
pourquoi pas faire direct :
Code :
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...)

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 13h17   #7
Candidat au titre de Membre du Club
 
Inscription : mai 2010
Messages : 43
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 43
Points : 10
Points : 10
C'est nickel ! Merci

En effet je n'avais pas vu le code que tu proposais pour afficher les résultats
chuckichucki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 13h19   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par ska_root Voir le message
peut-être parce que cela part d'une question bien précise ( faut y aller en douceur...)

c'est plutôt au niveau de la requête de la base qu'il faut le faire, ca sert a rien de récupérer des valeurs dont on ne se sert pas, comme pour le fetch_array ca sert a rien de choisir se mode si on se sert pas de la partie "row"
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 13h48   #9
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

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

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Je ne vais pas débattre des heures la-dessus... je comprends très bien ce que tu dis, mais chuckichucki a une bride de code qu'il veut exploiter d'une façon, il veut comprendre pourquoi ça marche pas.

M'enfin je crois.

Évidemment dans un deuxième temps, il serait bon de s'intéresser au fonctionnement et de vouloir optimiser son code, j'en conviens...
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 13h49   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par ska_root Voir le message
Je ne vais pas débattre des heures la-dessus... je comprends très bien ce que tu dis, mais chuckichucki a une bride de code qu'il veut exploiter d'une façon, il veut comprendre pourquoi ça marche pas.

M'enfin je crois.

Évidemment dans un deuxième temps, il serait bon de s'intéresser au fonctionnement et de vouloir optimiser son code, j'en conviens...
je comprend bien, je me posais juste la question
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h41.


 
 
 
 
Partenaires

Hébergement Web