ProXymus Skrevet 28. januar 2005 Del Skrevet 28. januar 2005 (endret) Prøver å lage en meny som kan ha evig med subkategorier. dvs En kategori under hovedkategori, og gjerne en kategori under kategorien som er under hovedkategorien etc. Men får det ikke helt til.. Det er vel recursive functions som må brukes til dette? Men syns det er litt vansklig å se for meg hvordan strukturen skal være.. Kan noen hjelpe meg litt? evt komme med eksempler... Endret 28. januar 2005 av ProXymus Lenke til kommentar
anderlin Skrevet 28. januar 2005 Del Skrevet 28. januar 2005 (endret) Jeg har akkurat gjort det samme på siden min. Vet ikke om dette er noen smart løsning, men slik gjorde jeg det: <? // Denne funksjonen finner hvor mange artikler det er under artikkelen med id=$id // Vær obs på at denne funskjonen ikke sjekker for løkker function antall_barn($id) { $query = 'SELECT * FROM sider WHERE kommerUnder="'.$id.'"'; $result = mysql_query($query); return mysql_num_rows($result); } // Denne funskjonen sørger bare for innrykk i menyen function skriv_tegn($antall, $tegn) { for ($i=0; $i < $antall; $i++) { $tegn2 = $tegn2.$tegn.' '; } return $tegn2; } function skriv_ut_menyer($id, $innrykk, $url) { global $side, $artikkel, $tilgang; // <--- For at funskjonen skal ta med variabler fra utsiden $query = 'SELECT * FROM sider WHERE kommerUnder="'.$id.'" ORDER BY tittel'; $result = mysql_query($query); $num_results = mysql_num_rows($result); for ($i=0; $i < $num_results; $i++) { $row = mysql_fetch_array($result); if (antall_barn($row["id"]) > 0) { // Dette er bare for at de skal se litt anderledes ut if ( er_valgt($row["id"]) ) { echo '<div class="valgtKategori"><a aref="'.$url.'/'.$row["id"].'">'.skriv_tegn($innrykk, "-").' - '.$row["meny"].'</a></div>'; skriv_ut_menyer($row["id"], $innrykk + 1, $url.'/'.$row["id"]); } else { echo '<div class="kategori"><a href="'.$url.'/'.$row["id"].'">'.skriv_tegn($innrykk, "-").' + '.$row["meny"].'</a></div>'; } } else { if ( er_valgt($row["id"]) ) { echo '<div class="valgtKategori"><a href="'.$url.'/'.$row["id"].'">'.skriv_tegn($innrykk, "-").$row["meny"].'</a></div>'; skriv_ut_menyer($row["id"], $innrykk + 1, $url.'/'.$row["id"]); } else { echo '<div class="kategori"><a href="'.$url.'/'.$row["id"].'">'.skriv_tegn($innrykk, "-").$row["meny"].'</a></div>'; } } } } skriv_ut_menyer($side, 0, '/'.$side); ?> Det er rester av litt andre funksjoner her. Si ifra hvis det fremdeles er uklart, så skal jeg rydde opp i koden. Jeg har organisert siden min slik at alle artikler kan ha underartikler. Vær obs på at jeg ikke gidder å sjekke for løkker (artikler som ligger under hverandre vil krasje systemet). Jeg bruker også en rekursiv funskjon for å finne stien til en artikkel ut fra id-nummeret: function finn_url( $id ) { $query = 'SELECT kommerUnder, id FROM sider WHERE id="'.$id.'"'; $result = mysql_query($query); $num_results = mysql_num_rows($result); if ( $num_results > 0 ) { $row = mysql_fetch_array($result); return finn_url( $row["kommerUnder"] ).'/'.$row["id"]; } else { return $id; } } http://anderlin.dyndns.org/data/76/77 <-- Hvis du vil se hvordan det virker Endret 28. januar 2005 av anderlin Lenke til kommentar
ProXymus Skrevet 28. januar 2005 Forfatter Del Skrevet 28. januar 2005 Fikk det til nå tenker jeg... Takk Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå