Autor Zpráva
martys
Profil
ahojte, potýkám se s výpisem registrovaných žáku.
Oč se jedná? popíšu.

Každý se může zaregistrovat pomocí odkazu jenž ve trídě žáci budou mít.
napr kdyby se někdo zaregistroval pomocí tohoto odkazu
www.neco.cz/registrace.php?kod=9&akce=novy
tak se mu uloží do profilu (tabulka zaci ,do sloupce od_koho) že se zaregistroval pomocí mého odkazu (mam totiz id 9).

A ted potřebuji vypsat přehled. A to je kámen úrazu.

Mělo by to vypadat např takto:

marty (9)
---------tomas(12,9)
---------jirka (13,9)
---------------------- pavel (20,13)
---------------------- pepa (22,13)
-------anna(18,9)
karel (10)
------ota (23,10)
čísla v závorkách jsou zde uvedena pro vás a znamenají ID žáků a pod jaké ID patří. a místo mezer jsem dal - abych dokázal udělat náhled tabulky

A vůbec nemam tušeni jak toho docílit. Aby výsledek byl ve tvaru stromu.
Můžete mne prosím nějak postrčit jak to z te vypsat?. Cykly vůbec neovládám :-(
Děkuji
marty
Kacko
Profil
rekurzivní funkcí
martys
Profil
Můžeš mi to prosímtě přiblížit?
Kacko
Profil
viz. wiki
martys
Profil
Kacko:
To uz je nad me sily.. ze skoly jsem uz cca 25 let a php se venuju jako konicek a priznavam ze na toto nemam ani omylem abych se to sam naucil.
Myslis, ze bys mohl mi trochu vice poradit?
DoubleThink
Profil *
V tomto případě by funkce pro každého člena hledala, jestli má nějaké potomky (účastníky). Pro každého nalezeného by pak zavolala znovu sama sebe. Stejným způsobem se dělá výpis adresářového stromu filesystemu.
Kacko
Profil
martys:
Vysvetleni prenecham jinym, nevim jak to vysvetlit jednoduse a slozite by to bylo na hodne dlouho.
Myslim, ze jste si na sebe vzal velke sousto. Zkuste postupovat po krocich. Naucte se pracovat s podminkami a cykly, nasledne si napiste nejakou funkci a nasledne zkuste toto.
martys
Profil
zakladni podminky a cykly zvladam to je v pohode
jen nejak nechapu zakomponovani funkce toho zjistovani zda dotycny jenz prave vypisuji nema nikoho pod sebou. vim ze to je dulezite jinak bych se opet zacyklil.
Kdybych to delal nejak jsednoduse tak skoro porad bych posilal dotaz do db.. a pri predstave napr 200 lidi to bude zaprah.
PS: kackoklidne mi tykej, na netu jsme si vekove seci rovni.
Kcko
Profil
martys:
Zitra odpol / vecer, resp az me uvidis na ICQ tak mi napis, pomuzu Ti to napsat, resil jsem to s nekym pred par dny ( rekurzivni funkce - navigacni strom ).

ICQ v mem profilu.
martys
Profil
Dekuji timto Kckovi ze se mi venoval.. beha to nadherne a je to kod jen na par radku.
jeste jednou ti diki.
tiso
Profil
martys: je dobrým zvykom podeliť sa na diskusii o riešenie, mohlo by sa hodiť ostatným.
martys
Profil
pardon,
kod byl:
function printCategories($catIDs) 
  {
   
    $out  = '';
    $out .= "<ul>";
    foreach($catIDs as $catID) 
    {
      
      $out .=  "<li>".$GLOBALS['nav']['catNames'][$catID];
      if( array_key_exists($catID, $GLOBALS['nav']['subcats']))
        {
           
          $out .=  printCategories($GLOBALS['nav']['subcats'][$catID]);
        }
    }
    $out .= "</li>";
    $out .=  "</ul>\n";
    
    return $out;
  }



function loadCoreData()
  {
    $sql = mysql_query("SELECT *, od_koho as parent, idc as id, prezdivka as name FROM rs_ctenari ORDER BY prezdivka");
    $nav = array();
 while ($r = mysql_fetch_object($sql))
    {
      $nav['subcats'][ $r->parent ][]   = $r->id;
      $nav['catNames'][ $r->id ]        = $r->name;
      $nav['catParents'][ $r->id ]      = $r->parent;
    }
 
 return $nav;  
  }
  $nav = loadCoreData();
echo printCategories($nav['subcats'][0]);


dofam ze kcko si na to nebude delat autorske prava ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: