Lancer une fonction apres une requête SQL [Résolu/Fermé]

Signaler
Messages postés
137
Date d'inscription
lundi 17 mars 2008
Statut
Membre
Dernière intervention
9 juillet 2014
-
Messages postés
137
Date d'inscription
lundi 17 mars 2008
Statut
Membre
Dernière intervention
9 juillet 2014
-
Bonjour,

Voilà mon problème:

J'ai créé une fonction qui vise à récupérer des données après avoir fait une requête SQL, mais elle ne me retourne aucune donnée... Voilà mon code (un peu raccourci):

La fonction tab_leaf:
function tab_leaf($i)
{
	$leaf[$i][0] = $donnees['id'];
	$leaf[$i][1] = $donnees['nom'];
	$leaf[$i][2] = $donnees['prenom'];
	return $leaf[$i];
}


La requête suivie de l'appel de la fonction:
$reponse = mysql_query("SELECT *, DATE_FORMAT(date_n, '%d-%m-%Y') AS date_n, DATE_FORMAT(date_d, '%d-%m-%Y') AS date_d FROM leaves WHERE id='$id'");
$donnees = mysql_fetch_array($reponse);
$leaf[1] = tab_leaf(1);
$leaf[1][10] = $donnees['generation'];


La requête fonctionne car les données du champ 'generation' sont bien stockées dans la variable $leaf[1][10] , par contre le reste de l'array ($leaf[1][0] , $leaf[1][1] ...) reste totalement vide...

Merci d'avance!


4 réponses

Messages postés
29
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
14 janvier 2013
3
Dans une fonction , on ne peut utiliser que ses variables locaux ou les variables globales
donc , il faut mettre le requête au sein de la fonction :)
Messages postés
137
Date d'inscription
lundi 17 mars 2008
Statut
Membre
Dernière intervention
9 juillet 2014
31
Merci:) Raaahh, ça ne m'arrange pas du tout...
Messages postés
29
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
14 janvier 2013
3
Alors , la solution est de mettre le résultat de la requête dans une variable puis la passer dans l'entête de la fonction
exemple :
$resultat = résultat de la requête , ça sera sous forme d'un Array
tu appel la fonction sous cette forme
function tatata($resultat);
et du la déclare sous cette forme
function tatata($resultat){
tes traitement ici en utilisant $resultat
}
Messages postés
137
Date d'inscription
lundi 17 mars 2008
Statut
Membre
Dernière intervention
9 juillet 2014
31
Youhou ça marche, merci!
Ca donne:

La fonction tab_leaf:
function tab_leaf($i, $donnees)
{
	$leaf[$i][0] = $donnees['id'];
	$leaf[$i][1] = $donnees['nom'];
	$leaf[$i][2] = $donnees['prenom'];
	return $leaf[$i];
}

La requête suivie de l'appel de la fonction:
$reponse = mysql_query("SELECT *, DATE_FORMAT(date_n, '%d-%m-%Y') AS date_n, DATE_FORMAT(date_d, '%d-%m-%Y') AS date_d FROM leaves WHERE id='$id'");
$donnees = mysql_fetch_array($reponse);
$leaf[1] = tab_leaf(1, $donnees);
$leaf[1][10] = $donnees['generation'];