Radim na jednom ličnom projektu i malko sam zapeo, pa mi treba neki savet, idejica.
Situacija: Korisnici se na sajt registruju preko referal linka. Bitna polja u tabeli su (id, parent_id). Registracija, upis u bazu, sve funkcioniše perfektno.
Problem: Želeo bih ulogovanom korisniku da prikažem njegovu mrežu na što jednostavniji način. Tj. ukupan broj referala po nivoima dubine. Mislio sam da to napravim preko rekurzivne funkcije, ali mi malo pravi problem pri prikazu.
Primer: Korisnik ima 5 direktnih referala (registrovanih preko njegovog linka). Prikaz za prvi nivo je 5. Svaki od tih referala npr ima po 3 svoja. Prikaz za drugi nivo je zbir svih iz drugog nivoa (3+3+3+3+3=15).. itd koliko god nivoa da postoji ispod.
function mreza($userId, $n) {
$sql = "select * from users where parent_id = '" . $userId . "'";
$res = $this->conn->query($sql) or die('Greška');
if ($res) {
if ($res->num_rows > 0) {
while ($oMreza = $res->fetch_object()) {
?>
<tr>
<td><?= $n++; ?></td>
<td><?= $res->num_rows; ?></td>
<td><?= $oMreza->id; ?></td>
</tr>
<?php
$this->mreza($oMreza->id, $n);
}
}
}
}