Avatar billede maabjerg Nybegynder
11. august 2008 - 11:24 Der er 2 kommentarer

Lave et hiraki af navne listet?

Hej Eksperter

Jeg sidder med et lille problem. Jeg kan slet ikke lige komme på hvordan det skal løses.

Problemet er at jeg skal have lavet et hiraki.

Jeg har en tabel i en mysql database som ser således ud:

id - int - auto - primary
title - varchar(50)
belongs_to_id - int

Pointen er så at man skal kunne tilføje så mange led til som man overhovedet har lyst til fx:

Gruppe 1
- Undergruppe 1
    - Under Undergruppe 1
    - Under Undergruppe 2
      - Under Under Undergruppe 1
- Undergruppe 2
Gruppe 2


Håber i forstår hvad jeg mener, men jeg ved ikke helt hvordan jeg skal få den printet ud.

For jeg tænker sådan her:

$sql = mysql_query("SELECT * FROM grupper ORDER BY id DESC");
while($rs = mysql_fetch_array($sql))
{
}

og ja.. så ka jeg ikk lige tænke på hvordan jeg gør resten?

På forhånd tak for hjælpen! :)

Med venlig hilsen
Steffen
11. august 2008 - 13:22 #1
Hejsa.

Jeg har lavet et eksempel i C#, men det skulle være meget overkommeligt at oversætte.

I mit loop er min "item" tilsvarende til din "grupper" tabel, hvilket betyder at når du skal rename BossId med belongs_to_id og FullName med title.

Kig på loopet og se om du kan få det oversat til PHP :)

static void Recurse( List<NameHierachy> names, int reference, int depth )
{
    foreach( var item in names ) {
        if( item.BossId == reference ) {
            string outputString = "";
            for( int i = 0; i < depth; i++ ) {
                outputString += ".";
            }

            outputString += item.FullName;

            Console.WriteLine( outputString );

            depth++;
            Recurse( names, item.EmployeeId, depth );
            depth--;
        }
    }
}
Avatar billede coderdk Praktikant
11. august 2008 - 23:13 #2
danielmellgaardfrost,

depth++;
Recurse( names, item.EmployeeId, depth );
depth--;

kan vel skrives som

Recurse( names, item.EmployeeId, depth + 1 );

;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester