Datenbank-Schleife

Armageddon

Grünschnabel
Hei Leute, auf meiner Website kriegen die User Punkte für bestimmte Aktionen. Wenn ich jemanden werbe, werde ich in der Endabrechnung dann prozentual an dem verdienten Punkten der geworbenen User beteidigt. Ich will nun mal wissen wie kann ich es hinkriegen, das ich die User auflisten lasse. Unzwar sollen die User der 1.Ebene 2.Ebene ... bis 5 Ebene angezeigt werden.
Dazu habe ich mir eine Datenbank angelgt mit Werber und Geworbener, indem die Userid festgehalten wird. Ich wollte es erreichen, dass PHP denn alle Möglichkeiten durchgeht, bis zur 5. Ebene.

Hier ist meine gedachtes Script dazu:

function name_suchen($userid) {

include("config.php");
include("verbinden.php");

$dbdaten = "SELECT * FROM userdaten WHERE userid='$userid'";
$ergebnis = mysql_query($dbdaten);
while($row = mysql_fetch_object($ergebnis))
{
$tokuser=$row->username;
}
return $tokuser;
}

function user_suchen($userid) {

include("config.php");
include("verbinden.php");

$dbdaten = "SELECT * FROM ref WHERE werber='$userid'";
$ergebnis = mysql_query($dbdaten);
while($row = mysql_fetch_object($ergebnis))
{
$geworben=$row->geworben;
}
return $geworben;
}

###1.Ebene

$ebene1= strtok(user_suchen($userid)," ");

while($ebene1)
{
echo " Ebene 1 $ebene1 <br>";

$ebene2= strtok(user_suchen($ebene1)," ");
while($ebene2)
{
echo" Ebene 2 $ebene2 <br>";
$ebene2= strtok(" ");
}
$ebene1= strtok(" ");
}


Es funktioniert nätürlich nicht, weil wenn User A zwei man ( User B und C ) geworben hat, wobei User B wieder einen geworben hat ( User D) denn zeigt er mir entweder nur B und C an oder nur B und D.


Ich hoffe ihr versteht mein Problem und könnt mir helfen:(
 
Das ist ein Anwendung für ein Recursive Function

PHP:
function namen_suchen($userid) {
static deep = 0;
# db anfrage
if ($deep < 5) {
 $deep++;
 $user = namen_suche($dbuserid);
}
}

die Var deep sorgt dafür das nur eine maximale Recutionstiefe von 5 erreicht wird

Ansonsten liest du wie gehabt deine Dazensätze aus und rufst für jeden Eintrag nochmal die
Function auf.

Wenn also User A = B und C geworben hat wird in der Function zweimal noch mal die Fuction
aufgerufen
So bekommste alle

Bei Bedarf nachfragen :-)
 
Zurück