Avatar billede Vaffel Nybegynder
10. april 2012 - 13:33 Der er 8 kommentarer og
1 løsning

Databasedrevet dropdown-navigation

Hejsa!

Jeg står med et problem. Jeg vil gerne implementere en dropdown-menu på min side og gøre den dynamisk. Jeg har lavet følgende i min database, men ved ikke helt, hvordan jeg kommer videre:

http://img9.imageshack.us/img9/7328/unavngivetyv.png

Jeg har lavet dropdown-menuen i HTML således:

[code]function nav($db){
    echo '<div id="mnav">
            <div class="nav">
                <ul id="menu" class="dropdown dropdown-horizontal">
                    <li><a href="'.$_SERVER['PHP_SELF'].'?id=1" class="dir">Forside</a></li>
                    <li><a href="./" class="dir">Havnen</a>
                        <ul class="smaller">
                            <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=1">› Ordensreglement</a></li>
                            <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=2">› Vedtægter</a></li>
                            <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=3">› Havkajak</a></li>
                            <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=4">› Kapsejlads</a></li>
                        </ul>
                      </li>
                    <li><a href="./" class="dir">Galleri</a>
                          <ul class="smaller">
                            <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=5"></a></li>
                            <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=6">› 10/08/11 - 25-års jubilæum</a></li>                       
                              <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=7">› 21/04/11 - Arbejdsdag</a></li>                   
                              <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=8">› 10/09/09 - Helikoptertur</a></li>
                            <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=9">› Gamle billeder</a></li>
                            <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=14">› Andet</a></li>
                        </ul>
                      </li>
                      <li><a href="./" class="dir">Om os</a>
                          <ul class="smaller">
                              <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=11">› Bestyrelsen</a></li>
                              <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=12">› Udvalg</a></li>
                            <li><a href="'.$_SERVER['PHP_SELF'].'?d_id=13">› Møder/referater</a></li>
                          </ul>
                    </li>
                      <li><a href="'.$_SERVER['PHP_SELF'].'?id=5" class="dir">Kontakt</a>
                    </li>
                </ul>
              </div>
        </div>';
};[/code]

Er der nogen der kan hjælpe med, hvordan jeg får det udskrevet korrekt i PHP? Jeg har søgt meget på Google omkring det, men synes ikke der er noget, jeg kan bruge.

På forhånd tak :)
Avatar billede olsensweb.dk Ekspert
10. april 2012 - 15:45 #1
Avatar billede Vaffel Nybegynder
10. april 2012 - 17:39 #2
Tak! Men jeg får to fejl.

I zip-filens index:
"Notice: Trying to get property of non-object on line 23"
og
"Fatal error: Call to a member function free() on a non-object on line 38"

Jeg fik samme fejl, da jeg lagde det på siden. Kan du hjælpe?
Jeg kan selvfølgelig også selv gå i krig med at kode det, dine links hjalp i hvert fald :)
Avatar billede olsensweb.dk Ekspert
10. april 2012 - 18:18 #3
hvad har du kaldt din menu tabel ??,
men du skal også lave noget fejl håndtering i linje 20
linje 15-23

$query = sprintf('SELECT `id`, `label` FROM `menu` WHERE `parent`=%d', $parent);

  $result = $db->query($query);

  if ( ! $result ) {
    // do error handling here
  }

  if ($result->num_rows > 0) {
Avatar billede Vaffel Nybegynder
10. april 2012 - 19:19 #4
Jeg har ændret menu-navnet i linje 15, hvis det er det, du tænker på :)Men der er stadig fejl.
Avatar billede olsensweb.dk Ekspert
10. april 2012 - 19:24 #5
>Jeg har ændret menu-navnet i linje 15, hvis det er det, du tænker på
ja
har du også rettet det i linje 90
$query = sprintf('SELECT `parent` FROM `menu` WHERE id=%d LIMIT 1', $i);

samt selvføgelig database parameterne i linje 66
$db = new mysqli('localhost', 'root', '', 'test');
Avatar billede Vaffel Nybegynder
10. april 2012 - 21:26 #6
Alt er tilpasset, jeg får bare samme fejl med property of non-object (linje 23) og call to a member function free (linje 38)
Avatar billede olsensweb.dk Ekspert
10. april 2012 - 22:54 #7
jeg kan kun få denne fejl ved i linje 15

$query = sprintf('SELECT `id`, `label` FROM `menu` WHERE `parent`=%d', $parent);

at skrive forkert kollonne navn eller tabel navn
kollonne navne er jf dit billed, så de burde være iorden

hvordan ser din tabel structur ud ??

hvilke data type er "parent" ??

har du prøvet med min tabel ??
Avatar billede Vaffel Nybegynder
11. april 2012 - 09:10 #8
Ah! Nu hjalp det på det, så skal den bare styles. Tusind tak, du må hellere skrive et svar (til løsninger og pointgivning), frem for kommentarer, så du kan få dine velfortjente point :)
Avatar billede olsensweb.dk Ekspert
11. april 2012 - 11:58 #9
selvtak, du får så et svar her.

hvad var fejlen ??
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
Computerworld tilbyder specialiserede kurser i database-management

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