Hello,

J'aimerai remplacer le contenu d'un champ d'un tableau associatif par une valeur retourné par une fonction. Je n'y arrive pas...

Voici mon code, la ligne 9 est l'endroit où j'essaie de réaliser le changement de valeur. J'ai aussi mis la fonction qui fournie la valeur. Question subsidiaire: Dans ma fonction, au lieu de retourner la variable "$manager" qui contient le contenu de "$mgrlst['full_name']" comment est ce que je pourrai retourner directement le contenu de "$mgrlst['full_name']"

La fonction fonctionne parfaitement et me retourne bien une chaine de caractère. L'erreur que j'obtiens à l'exécution est : "Fatal error: Cannot use object of type stdClass as array in..". elle indique la ligne 9 comment étant la fautive.


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
27
28
<?php
$profile_key = verif_GetPost($_GET['profile_key']);
$sql="SELECT * FROM profiles WHERE profile_key='$profile_key' ";
$qid = mysql_query($sql);  
if (!$qid)  die ("Probleme :  " . mysql_error());
$nligne= mysql_num_rows($qid);
$list=mysql_fetch_object( $qid);
 
//remplacement de la valeur par celle fournie par detect_manager
$list['manager']="detect_manager($profile_key)";
 
 
function detect_manager(&$profile_key)
{
global $connex;
$sql="SELECT left_lm, right_lm, level_lm FROM profiles WHERE profile_key='".($profile_key)."' ";
$qid = mysql_query($sql);  
if (!$qid)  die ("Probleme :  " . mysql_error());
$row=mysql_fetch_assoc($qid);
 
$sql="SELECT full_name FROM profiles WHERE left_lm<$row[left_lm] AND right_lm>$row[right_lm] AND level_lm=$row[level_lm]-1";
$qid = mysql_query($sql);  
$mgrlst=mysql_fetch_assoc($qid);
 
$manager=$mgrlst['full_name'];
return $manager;
}
?>
Merci de votre aide