Avatar billede tanzaweb Nybegynder
15. november 2005 - 00:52 Der er 16 kommentarer og
1 løsning

link menu virker ikke

Hej Jeg prøver at lave en link menu med undermenu, men har et problem ned at når jeg sætter linket sådan
Nogen forslag?

<?php $result_ShopLinks = mysql_query("SELECT * from topkategori ORDER BY Kategori ASC");
            while ($row_ShopLinks = mysql_fetch_array($result_ShopLinks)){
            echo "<a href='".$_SERVER['PHP_SELF']."?ShopSubKatid=".$row_ShopLinks['KatId']."&SubKategori=SubLinks".$row_ShopLinks['KatId']."' class='TopLink'>"; echo $row_ShopLinks['Kategori']."</a><br />";
           
            if (!isset($SubKategori)){
            echo "";
            }
            if (isset($_GET['SubKategori']) && $SubKategori== 'SubLinks'.$ShopSubKatid){
           
                  $result_Show = mysql_query("SELECT * from subkategori");
                while ($row_Show = mysql_fetch_array($result_Show)){
                               
                if ($ShopSubKatid == $row_Show['SubKatId']){
                $result = mysql_query("SELECT * from subkategori WHERE KatId = '$ShopSubKatid' ORDER BY SubKat ASC");               
                while ($row = mysql_fetch_array($result)){
                echo "<a href='show_prod_list.php?id=".$row['SubKatId']."' class='SubLinks'>"; echo $row['SubKat']."</a><br />";
                }               
                }else{
                }
                }
            }       
            }
            ?>
Avatar billede jakobdo Ekspert
15. november 2005 - 09:16 #1
Hvad er problemet?
Avatar billede tanzaweb Nybegynder
15. november 2005 - 10:58 #2
At den ikke skriver underlinkene ud når man trykker på en top menu.
Den skriver bare:
Andet
Film merchandice
Musik merchandice
Smykker

Istedet for at skrive foreks:
Andet
Film merchandice
Autografer
Badges
Plakater
T-shirts

Musik merchandice
Smykker
Avatar billede tanzaweb Nybegynder
15. november 2005 - 11:26 #3
Når jeg skriver den sådan så skriver den linkene ud, men under alle topmenuerne kan ikke lige forstå hvorfor den gør det:

<?php $result_ShopLinks = mysql_query("SELECT * from topkategori ORDER BY Kategori ASC");
            while ($row_ShopLinks = mysql_fetch_array($result_ShopLinks)){
            echo "<a href='".$_SERVER['PHP_SELF']."?ShopSubKatid=".$row_ShopLinks['KatId']."&SubKategori=SubLinks".$row_ShopLinks['KatId']."' class='TopLink'>"; echo $row_ShopLinks['Kategori']."</a><br />";
           
            if (!isset($SubKategori)){
            echo "";
            }
            if (isset($_GET['SubKategori']) && $SubKategori== 'SubLinks'.$ShopSubKatid){
           
                  $result_Show = mysql_query("SELECT * from subkategori WHERE KatId = $ShopSubKatid");
                $row_Show = mysql_fetch_array($result_Show);
                $Show_Links = $row_Show['KatId'];

                if ($ShopSubKatid == $Show_Links){
                $result = mysql_query("SELECT * from subkategori WHERE KatId = '$ShopSubKatid' ORDER BY SubKat ASC");               
                while ($row = mysql_fetch_array($result)){
                echo "<a href='show_prod_list.php?id=".$row['SubKatId']."' class='SubLinks'>"; echo $row['SubKat']."</a><br />";
                }
                               
                }else{
                                       
                }
            }       
            }
            ?>
Avatar billede jakobdo Ekspert
15. november 2005 - 11:54 #4
Hvordan er din database struktur, jeg kan se nogle id'er?
har du en topkategori som har id = 1
og så i subkat har alle subs f.eks. topid = 1?
Avatar billede jakobdo Ekspert
15. november 2005 - 11:55 #5
Jeg tror ihf det kan lave i stil med dette:

<?php
    $sub = mysql_escape_string($_GET["ShopSubKatid"]);
   
    $result_ShopLinks = mysql_query("SELECT * from topkategori ORDER BY Kategori ASC");
    while ($row_ShopLinks = mysql_fetch_array($result_ShopLinks))
    {
        echo "<a href='".$_SERVER['PHP_SELF']."?ShopSubKatid=".$row_ShopLinks['KatId']."&SubKategori=SubLinks".$row_ShopLinks['KatId']."' class='TopLink'>"; echo $row_ShopLinks['Kategori']."</a><br />";

        if (!empty($sub))
        {
            $result_Show = mysql_query("SELECT * from subkategori WHERE top_id = ".$sub);
            while ($row_Show = mysql_fetch_array($result_Show))
            {
                echo "<a href='show_prod_list.php?id=".$row['SubKatId']."' class='SubLinks'>"; echo $row['SubKat']."</a><br />";
            }
        }
    }
?>
Avatar billede tanzaweb Nybegynder
15. november 2005 - 12:08 #6
I Subkategori har jeg:
SubKatId
SubKat
KatId

Og i topkategori har jeg:
KatId
Kategori

KatId i subkategori er de KatId som er i topkategori og de kan være delt op i de forskellige topkategorier.

se siden her: http://www.ent4you.dk/shop/index.php

Det er første gang jeg prøver at lave sådan en menu.

subkategori
SubKatId    SubKat    KatId
162    Film    10
163    Musik Video    10
171    Autografer    12
165    T-shirts    12
166    T-shirts    13
167    Navleringe    14
168    Penduler    11
169    Spil    12
170    Autografer    13
172    Plakater    12
173    Plakater    13
174    Badges    12
175    Badges    13
176    Patches    12
177    Halssmykker    14
178    Armbånd    14
179    Børnesmykker    14
180    Ringe    14

topkategori
KatId    Kategori
11    Andet
12    Film merchandice
13    Musik merchandice
14    Smykker
Avatar billede jakobdo Ekspert
15. november 2005 - 12:39 #7
test lige denne kode:

<?php
    $sub = mysql_escape_string($_GET["ShopSubKatid"]);
   
    $result_ShopLinks = mysql_query("SELECT Kategori from topkategori ORDER BY Kategori ASC");
    while ($row_ShopLinks = mysql_fetch_array($result_ShopLinks))
    {
        echo "<a href='".$_SERVER['PHP_SELF']."?ShopSubKatid=".$row_ShopLinks['KatId']."&SubKategori=SubLinks".$row_ShopLinks['KatId']."' class='TopLink'>"; echo $row_ShopLinks['Kategori']."</a><br />";
       
        if (!empty($sub))
        {
            $result_Show = mysql_query("SELECT SubKatId,SubKat from subkategori WHERE KatId = ".$sub);
            while ($row_Show = mysql_fetch_array($result_Show))
            {
                echo "<a href='show_prod_list.php?id=".$row['SubKatId']."' class='SubLinks'>"; echo $row['SubKat']."</a><br />";
            }
        }
    }
?>
Avatar billede tanzaweb Nybegynder
15. november 2005 - 12:58 #8
Ændred lige et par mindre ting, men den gør det samme som det jeg skrev på at se siden:
Her er din kode du sendte med et par små ændringer for fejl den sagde: SELECT Kategori from er ændret til SELECT KatId,Kategori from og $row['SubKatId'] er ændret til $row_Show['SubKatId']

$sub = mysql_escape_string($_GET["ShopSubKatid"]);
   
    $result_ShopLinks = mysql_query("SELECT KatId,Kategori from topkategori ORDER BY Kategori ASC");
    while ($row_ShopLinks = mysql_fetch_array($result_ShopLinks))
    {
        echo "<a href='".$_SERVER['PHP_SELF']."?ShopSubKatid=".$row_ShopLinks['KatId']."&SubKategori=SubLinks".$row_ShopLinks['KatId']."' class='TopLink'>"; echo $row_ShopLinks['Kategori']."</a><br />";
       
        if (!empty($sub))
        {
            $result_Show = mysql_query("SELECT SubKatId,SubKat from subkategori WHERE KatId = ".$sub);
            while ($row_Show = mysql_fetch_array($result_Show))
            {
                echo "<a href='show_prod_list.php?id=".$row_Show['SubKatId']."' class='SubLinks'>"; echo $row_Show['SubKat']."</a><br />";
            }
        }
    }
Avatar billede jakobdo Ekspert
15. november 2005 - 13:15 #9
Test denne:

<?php
//http://exp.dk/spm/664585

require("connect.php");

$sub = mysql_escape_string($_GET["subKat"]);
 
$result_ShopLinks = mysql_query("SELECT KatId,Kategori from topkategori ORDER BY Kategori ASC");
while ($row_ShopLinks = mysql_fetch_array($result_ShopLinks))
{
    echo "<a href='".$_SERVER['PHP_SELF']."?subKat=".$row_ShopLinks['KatId']."' class='TopLink'>"; echo $row_ShopLinks['Kategori']."</a><br />\n";
     
    if (!empty($sub) && ($row_ShopLinks["KatId"] == $sub))
    {
        $result_Show = mysql_query("SELECT SubKatId,SubKat from subkategori WHERE KatId = ".$sub);
        while ($row_Show = mysql_fetch_array($result_Show))
        {
            echo "- <a href='show_prod_list.php?id=".$row['SubKatId']."' class='SubLinks'>".$row_Show['SubKat']."</a><br />\n";
        }
    }
}
?>
Avatar billede tanzaweb Nybegynder
15. november 2005 - 13:27 #10
Det virker jo bare, supert send lige et svar og du får pointene.

Jeg har sat linket til denne side ind i kildekoden så man kan se løsningen. En super ide.
Avatar billede jakobdo Ekspert
15. november 2005 - 13:28 #11
Svar!
Avatar billede tanzaweb Nybegynder
15. november 2005 - 13:34 #12
Jeg har lige tilføjet et par linjer hvis der ikke eksistere en "subKat" og så ser det således ud:
Man skal jo så huske at tilføje en database connection osse.

//Test kode fra eksperten
//http://exp.dk/spm/664585
if (!isset($subKat)){
    $result_ShopLinks = mysql_query("SELECT KatId,Kategori from topkategori ORDER BY Kategori ASC");
    while ($row_ShopLinks = mysql_fetch_array($result_ShopLinks))
    {
        echo "<a href='".$_SERVER['PHP_SELF']."?subKat=".$row_ShopLinks['KatId']."' class='TopLink'>"; echo $row_ShopLinks['Kategori']."</a><br />\n";
    }
}

if (isset($_GET['subKat']) && $subKat== $subKat){
   
    $sub = mysql_escape_string($_GET["subKat"]);
 
    $result_ShopLinks = mysql_query("SELECT KatId,Kategori from topkategori ORDER BY Kategori ASC");
    while ($row_ShopLinks = mysql_fetch_array($result_ShopLinks))
    {
        echo "<a href='".$_SERVER['PHP_SELF']."?subKat=".$row_ShopLinks['KatId']."' class='TopLink'>"; echo $row_ShopLinks['Kategori']."</a><br />\n";
     
        if (!empty($sub) && ($row_ShopLinks["KatId"] == $sub))
        {
            $result_Show = mysql_query("SELECT SubKatId,SubKat from subkategori WHERE KatId = ".$sub);
            while ($row_Show = mysql_fetch_array($result_Show))
            {
                echo "- <a href='show_prod_list.php?id=".$row_Show['SubKatId']."' class='SubLinks'>".$row_Show['SubKat']."</a><br />\n";
            }
        }
    }
}           
            ?>
Avatar billede jakobdo Ekspert
15. november 2005 - 13:37 #13
Jeg forstår ikke helt din kode...
Men hvorfor ikke bare:

<?php
//http://exp.dk/spm/664585

require("connect.php");

$sub = mysql_escape_string($_GET["subKat"]);
 
$result_ShopLinks = mysql_query("SELECT KatId,Kategori from topkategori ORDER BY Kategori ASC");
while ($row_ShopLinks = mysql_fetch_array($result_ShopLinks))
{
    echo "<a href='".$_SERVER['PHP_SELF']."?subKat=".$row_ShopLinks['KatId']."' class='TopLink'>"; echo $row_ShopLinks['Kategori']."</a><br />\n";
     
    if (!empty($sub) && ($row_ShopLinks["KatId"] == $sub))
    {
        $result_Show = mysql_query("SELECT SubKatId,SubKat from subkategori WHERE KatId = ".$sub);
        if(mysql_num_rows($result_Show)>0)
        {
            while ($row_Show = mysql_fetch_array($result_Show))
            {
                echo "- <a href='show_prod_list.php?id=".$row['SubKatId']."' class='SubLinks'>".$row_Show['SubKat']."</a><br />\n";
            }
        }
        else
        {
            echo "- Ingen subs<br />\n";
        }
    }
}
?>
Avatar billede tanzaweb Nybegynder
15. november 2005 - 14:34 #14
Hvis man bruger den laver den fejl hvis man kommer ind uden en "subKat" med tillæget så tester den og hvis der ingen er ja så viser den bare linkene.

Og det selv om der er en else sætning.

det er fordi serveren er sat me dshow al errors, eller sådan er det ihvertfald blevet forklaret.
Avatar billede jakobdo Ekspert
15. november 2005 - 14:37 #15
Også den nyeste jeg har lavet der?
Avatar billede tanzaweb Nybegynder
15. november 2005 - 14:54 #16
Nej den virker godt nok, havde bare lige lavet en taste fejl, og en enkelt $row, skulle ændres til $row_Show.

Tak,
Avatar billede jakobdo Ekspert
15. november 2005 - 15:08 #17
Mente jeg nok! :o)
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