Lancer une fonction apres une requête SQL

Résolu
chantaussel Messages postés 140 Statut Membre -  
chantaussel Messages postés 140 Statut Membre -
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!



--
Quelques bases en javascript, débute en php/mySQL
J'essaie de mettre en ligne mon arbre généalogique.

4 réponses

  1. Mr.Brobleme Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   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 :)
    0
  2. chantaussel Messages postés 140 Statut Membre 30
     
    Merci:) Raaahh, ça ne m'arrange pas du tout...
    0
  3. Mr.Brobleme Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   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
    }
    0
  4. chantaussel Messages postés 140 Statut Membre 30
     
    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'];
    
    0