basti_p: Rückgabewert aus rekursiver Funktion

Hallo,

folgendes Problem:

meine PHP-Funktion ruft sich so lange erneut auf, bis ein bestimmter Zustand erreicht ist, dann soll ein Wert zurückgegeben werden.

function getEntryId($entry_id=0)
 {
 $result=mysql_query("SELECT entry_id FROM...");
 if(mysql_num_rows($result)>0)
  {
  $row=mysql_fetch_array($result);
  getEntryId($row['entry_id']);
  }
 else
  {
  return $entry_id;
  }
 }

Die SELECT-Abfrage ist korrekt, wenn ich mir die Werte mit echo ausgeben lasse, funktioniert alles.

Möchte ich aber so auf den return-Wert zugreifen:

$var=getEntryId(4);

und die Funktion ruft sich mehrfach auf, ist $var leider leer. Kann ich diese Funktion überhaupt so einsetzen oder wird dann nur der erste Durchlauf berücksichtigt?

Danke und Grüße Basti

  1. Hi,

    function getEntryId($entry_id=0)
    {
    $result=mysql_query("SELECT entry_id FROM...");
    if(mysql_num_rows($result)>0)
      {
      $row=mysql_fetch_array($result);
      getEntryId($row['entry_id']);
      }
    else
      {
      return $entry_id;
      }
    }

    $entry_id wird ja auch NIE mit einem Wert belegt...

    Die Funktion getEntryId sollte immer einen return wert haben!

    etwa so:

    function getEntryId($entry_id=0)
    {
       $result=mysql_query("SELECT entry_id FROM...");
       if(mysql_num_rows($result)>0)
       {
         $row=mysql_fetch_array($result);
         $entry_id = getEntryId($row['entry_id']);
       }
       return $entry_id;
    }

    Also wichtig ist natürlich, dass du das Ergebnis der rekursiven Aufrufe einer Variablen zuweist.

    Gruß
    Christian

    1. Danke, das wars!

      Grüße Basti