J'ai une fonction récursive qui renvoie une valeur.La fonction PHP ne renvoie pas de valeur
public function getparent ($user)
{
$referrer=''; $pos=0;$this->setFieldNames();
$result=mysql_query("select * FROM ". $this->dbtablename ." WHERE ".$this->id_field . " = '$user'", $this->dbConnectionID);
while($row=mysql_fetch_array($result, MYSQL_ASSOC))
{
$referrer=$row['referrer'];
$export=array();
foreach($this->tablefields as $val){
$export[$val] = $row[$val];
}
}
if($referrer != "0" && $referrer != "")
{
$result2=mysql_query("select * from " . $this->dbtablename . " where " . $this->id_field . " ='$referrer'", $this->dbConnectionID);
while($row2=mysql_fetch_array($result2, MYSQL_ASSOC))
{
$export=array();
foreach($this->tablefields as $val){
$export[$val] = $row2[$val];
}
}
}
$result2=mysql_query("select * from " . $this->dbtablename . " where " . $this->parent_id_field . " ='$referrer' order by id asc", $this->dbConnectionID);
while($row2=mysql_fetch_array($result2, MYSQL_ASSOC))
{
$usernames[]=$row2['username'];
}
$pos=array_search($user, $usernames);
if($referrer == '0' || $pos >=1)
{echo 'xxxxxxx';
return $export;
}
else
{
$this->getparent($referrer);
}
}
Il semble que lorsque le referrer $ est égal à zéro, il ne marche pas retourner une valeur, mais il fait écho « xxxxxxx ». Quel peut être le problème!?
Le tableau $ export que je remplace est en fait intentionnel, bien que chaque boucle while ne renvoie qu'une seule ligne. Votre dernière suggestion a fait la magie, mais je pensais que son nt obligatoire, il doit retourner une valeur à ce moment-là. SVP, veuillez m'expliquer l'approche itérative. –