Avatar billede shaagerup Nybegynder
28. september 2005 - 19:27 Der er 2 kommentarer og
1 løsning

Rekursive funktioner til breadcrumb,menuer etc.

Hej!

Jeg har en MySQL-tabel med flg. opbygning (kald den "table"):
id | refid | title

refid er "ejeren" af id (niveauet over id). Øverste niveau har refid = 0.

Er id=1 og refid=0 er det et punkt allerøverst i hierakiet. Der kan så yderligere være en situation hvor id=2 og refid=1. Denne ligger så under id=1 i hierakiet. Håber at det er forståeligt :-)

Jeg skal nu have lavet 3 outputs:

Breadcrumb:
<div class="navigation>
Forside > [Niveauer] > [Siden jeg er på]
</div>
Her skal den finde vej tilbage til refid=0.

Menu:
<h2>[Niveau hvor refid=0]</h2>
<ul>
<li>[Henvisning til ovenstående]</li>
<li class="selected">[Henvisning til ovenstående]
<ul><li class="selected">[Siden jeg er på]</li></ul>
</li>
</ul>
Her skal den vise *hele* menutræet udfra den sektion som undersiden er en del af.

Hovedmenu:
<ul>
<li>[Punkt hvor refid=0]</li>
<li class="selected">[Punkt hvor refid=0, og som samtidig er "hovedejer" af det underpunkt jeg er inde på]</li>
<li>[Punkt hvor refid=0]</li>
<li>[Punkt hvor refid=0]</li>
</ul>
Avatar billede jakobdo Ekspert
28. september 2005 - 19:36 #1
Måske du kan genbruge dette: http://exp.dk/spm/645064
SQL'en skal rettes til:
SELECT
            id,
            title
        FROM
            menu
        WHERE
            refid = ".$id."
        ORDER BY
            id
Avatar billede nielle Nybegynder
28. september 2005 - 19:58 #2
Brødkrummerne er i hvert fald den nemmeste:

$breadcrumbs = "";
$id = 42;

while ($id != 0)
{
    $sql = "SELECT refid, title FROM table WHERE id=" . $id;
    $result = mysql_query($sql);
    $row = mysql_fetch_assoc($result));

    $breadcrumbs = $row["title"] . " &gt; " . $breadcrumbs;

    $id = $row["refid"];
}
Avatar billede shaagerup Nybegynder
18. oktober 2005 - 09:20 #3
Jeg endte med at lave mine egne funktioner, da mine ønsker var rimelig specifikke. Ellers tak for hjælpen :-).
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