Avatar billede dingkee Nybegynder
15. juni 2004 - 08:47 Der er 28 kommentarer og
1 løsning

Udfold - Menu - php

Hej,

Jeg er ved at lave en menu, hvorfra den henter menu-punkterne fra en SQL database, f.eks.:

Menu 1
Menu 2
Menu 3

Når jeg så f.eks. trykker på Menu 1, skal det se sådan ud:

Menu 1
  Undermenu 1
  Undermenu 2
Menu 2
Menu 3

Osv... hvordan laver jeg det?
Avatar billede avminarm Juniormester
15. juni 2004 - 08:52 #1
Det vil nok være nemmest at lave i javascript eller DHTML
Avatar billede jaw Nybegynder
15. juni 2004 - 08:55 #2
Måske noget a'la:

<a href='?vis=$menu'>$menu</a>  // her vil $menu så være menu1
if($vis == "menu1") {
echo $undermenu1 . "<br>"
    $undermenu1_2;
}
<a href='?vis=$menu2'>$menu2</a>  // her vil $menu2 så være menu2
if($vis == "menu2") {
echo $undermenu2 . "<br>"
    $undermenu2_2;
}
Avatar billede avminarm Juniormester
15. juni 2004 - 08:58 #3
Avatar billede jaw Nybegynder
15. juni 2004 - 08:59 #4
Jow, jow... Men hvis han nu gerne vil have det i PHP :)
Avatar billede dingkee Nybegynder
15. juni 2004 - 09:01 #5
Hmm... Deet kan jeg ikke helt forstå hvordan jeg skal lave i min kode...

Prøv at se på den her:

<?PHP

$sql = "SELECT * FROM sch_kategori ORDER BY id";
$result = mysql_query($sql) or die (mysql_error());
while($r = mysql_fetch_array($result)) {
$navn = $r["navn"];
$kat_id = $r["id"];
?>

&nbsp; &gt; <a href="index.php?id=<?PHP echo $kat_id; ?>"><?PHP echo $navn; ?></a><br>


<?PHP
}
?>
Avatar billede jaw Nybegynder
15. juni 2004 - 09:05 #6
Er det hele menuen du har i den ene linie?
Avatar billede dingkee Nybegynder
15. juni 2004 - 09:06 #7
Ja, det er hele min menu, den gentager indtil der ikke er flere i databasen
Avatar billede jaw Nybegynder
15. juni 2004 - 09:07 #8
Hvordan ved den så, hvad der er overmenu og hvad der er undermenu?
Avatar billede dingkee Nybegynder
15. juni 2004 - 09:13 #9
Der har jeg lavet et felt i databasen der hedder under, som er det samme som id i overmenuen. Altså:

Menu 1 (ID 1)
  Undermenu 1 (Under 1)
  Undermenu 2 (Under 1)
Menu 2 (ID 2)
Menu 3 (ID 3)
Avatar billede jaw Nybegynder
15. juni 2004 - 09:20 #10
Kig lidt på det her, og se om jeg har misforstået, er nemlig stadig lidt i tvivl om, hvor du henter undermenuerne fra:

<?PHP

$sql = "SELECT * FROM sch_kategori ORDER BY id";
$result = mysql_query($sql) or die (mysql_error());
while($r = mysql_fetch_array($result)) {
$navn = $r["navn"];
$kat_id = $r["id"];

echo "<a href='index.php?id=$kat_id'>$navn</a><br>";
    if($id == $kat_id) {
      $sql1 = mysql_query("SELECT * FROM undermenu_tabel WHERE id = $kat_id");
      while ($r1 = mysql_fetch_array($sql1)) {
        echo $r1[undermenu] . "<br";
      }
    }
}

?>
Avatar billede dingkee Nybegynder
15. juni 2004 - 09:37 #11
hmm... tror vi er inde på det rigtige men den giver en fejl:

mysql_fetch_array(): supplied argument is not a valid MySQL result resource in index.php on line 33
Avatar billede jaw Nybegynder
15. juni 2004 - 09:46 #12
I hvilken tabel har du dine undermenuer? Jeg har jo bare kaldt den "undermenu_tabel"...
Avatar billede dingkee Nybegynder
15. juni 2004 - 09:48 #13
den hedder sch_undermenu... Det har jeg rettet til...

Linie 33 er denne:
        echo $r1[navn] . "<br>";
Avatar billede jaw Nybegynder
15. juni 2004 - 09:49 #14
Ja, men selvom den siger 33, så ligger fejlen i denne linie:
$sql1 = mysql_query("SELECT * FROM undermenu_tabel WHERE id = $kat_id");

Prøv med ' omkring '$kat_id'
Avatar billede dingkee Nybegynder
15. juni 2004 - 09:55 #15
hmm det virker ikke... Men skal det ikke også være:
      $sql1 = mysql_query("SELECT * FROM sch_undermenu WHERE under = id");

under er feltet i databasen og id skal hentes fra URL
Avatar billede jaw Nybegynder
15. juni 2004 - 09:58 #16
Tjoh, det burde give samme resulatet, men i så fald skal du bruger:
WHERE under = '$id'

Kører du på en secure server? Altså, kan du direkte bruger $id eller skal du bruger $_GET['id'] normalt?
Avatar billede dingkee Nybegynder
15. juni 2004 - 10:00 #17
hmm... det hjælpe ikk... den giver stadig den her fejl:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in index.php on line 33
Avatar billede jaw Nybegynder
15. juni 2004 - 10:01 #18
Prøv aller øverst før din $sql at lave en: echo $id; og se om det bliver udskrevet...
Avatar billede dingkee Nybegynder
15. juni 2004 - 10:03 #19
Jep den skriver 1...
Avatar billede jaw Nybegynder
15. juni 2004 - 10:05 #20
okey... Og den tabel hvor du har dine undermenuer hedder "sch_undermenu" og feltet med tallene (id) hedder "under"?
Så du har altså i din tabel:

under    navn
1        blah
1        blah2
2        bum
3        hest
?
Avatar billede dingkee Nybegynder
15. juni 2004 - 10:08 #21
jeg har 3 felter:

ID  Navn  Under
1  hej  1
2  dav  2

osv
Avatar billede jaw Nybegynder
15. juni 2004 - 10:09 #22
Okey... Hvis den hedder Under (med stort U) skal U'et også være stort i din query-string:

$sql1 = mysql_query("SELECT * FROM sch_undermenu WHERE Under = '$id'");
Avatar billede dingkee Nybegynder
15. juni 2004 - 10:14 #23
bare mig der skrev forkert... alt er med småt
Avatar billede jaw Nybegynder
15. juni 2004 - 10:16 #24
Kan du lige paste det du har igen?
Avatar billede dingkee Nybegynder
15. juni 2004 - 10:24 #25
Okay, har fået det til at virke... Ved ikk hvad det var der lige var galt, men nu virker det :)

Eneste jeg mangler nu er at finde ud af hvordan jeg får mellemrum lagt ind her:
        echo $r1[undermenu] . "<br";

Altså mellemrum på hjemmesiden
Avatar billede jaw Nybegynder
15. juni 2004 - 10:31 #26
Gutti :) Du kan bruge:
echo "&nbsp;" . $r1[undermenu] . "<br>";

altså, et mellemrum = &nbsp; og så fremdeles
Avatar billede jaw Nybegynder
15. juni 2004 - 11:22 #27
Gået helt i stå?
Avatar billede dingkee Nybegynder
15. juni 2004 - 16:17 #28
nope, var bare lige væk...

Det virker sørme nu... Mange tak skal du ha...

Svar = Point... :)
Avatar billede jaw Nybegynder
15. juni 2004 - 16:18 #29
Perfekt jo :)
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