Avatar billede alaflam Nybegynder
23. februar 2005 - 20:26 Der er 11 kommentarer og
1 løsning

simpel PHP kode

jeg har arbejdet med PHP i mange ÅR, men nu ved jeg at er DUM da jeg ikke kan finde ud af at lave en lille ting.

    function getCategory($subid=0)
    {

        $sql = mysql_query("select * from category where subid=$subid") or die(mysql_error());
        while ($row=mysql_fetch_array($sql))
        {
            echo $row["name"]."<br>";
            getCategory($row["id"]);
        }
    }
    getCategory();
   

det er koden, jeg prøver på at få lavet en lille minus tegn hvergang der kommer en ny under kategory.

Hardware
-CPU
--Pentium4 Socket 775, Box
--Pentium4 Socket 478, Box (800FSB)
-DVD
-Kabinet
-Grafikkort
-MP3 Afspiller
-Bundkort
Avatar billede arne_v Ekspert
23. februar 2005 - 20:32 #1
Prøv:

function getCategory($ind,$subid=0)
    {

        $sql = mysql_query("select * from category where subid=$subid") or die(mysql_error());
        while ($row=mysql_fetch_array($sql))
        {
            echo $ind . $row["name"]."<br>";
            getCategory($ind + '-',$row["id"]);
        }
    }
    getCategory('');
Avatar billede arne_v Ekspert
23. februar 2005 - 20:32 #2
function getCategory($ind,$subid=0)
    {

        $sql = mysql_query("select * from category where subid=$subid") or die(mysql_error());
        while ($row=mysql_fetch_array($sql))
        {
            echo $ind . $row["name"]."<br>";
            getCategory($ind . '-',$row["id"]);
        }
    }
    getCategory('');
Avatar billede alaflam Nybegynder
23. februar 2005 - 20:46 #3
jeg fatter simpelhen ikke hvordan det bliver til det ???

jeg kan se du ALTID tilføjer - ligegyldigt hvad,,,så jeg oprettede igen en HOVED kategori, den startede ikke med MINUS og du har ingengang tjekket om

Hardware
-CPU
--Pentium4 Socket 775, Box
--Pentium4 Socket 478, Box (800FSB)
-DVD
-Kabinet
-Grafikkort
-MP3 Afspiller
-Bundkort
Software

jeg snakker om software...

går den da ud af hele funktionen og getCategory('') bliver kaldt eller hvad ? jeg er total forvirret.
Avatar billede arne_v Ekspert
23. februar 2005 - 20:51 #4
Først: virker det som det skal ?

Hvis ja så skal jeg prøve at forklare.
Avatar billede alaflam Nybegynder
23. februar 2005 - 20:55 #5
ja selvfølgelig gøre koden det :-)

det burdt du ikke spørger om :-)
Avatar billede arne_v Ekspert
23. februar 2005 - 20:56 #6
Ok så prøver jeg at forklare lidt.
Avatar billede arne_v Ekspert
23. februar 2005 - 21:00 #7
vi kalder først getCategory med $ind = '' og ingen id

den finder hardware skriver ud med ''

vi kalder så getCategory med $ind = $ind + '-' = '-' og hardwares id

den finder så CPU, DVD etc. og skriver ud med '-'

for hver af dem kalder vi så getCategory med $ind = $ind + '-' = '--' og deres id

og derfor bliver P4'erne udskrever med '--'
Avatar billede arne_v Ekspert
23. februar 2005 - 21:00 #8
og et svar
Avatar billede alaflam Nybegynder
23. februar 2005 - 21:01 #9
hvad med SOFTWARE det er ligesom hardware...og jeg kan se du tilføjet - hvergang du kalder getCategory inden for funktionen
Avatar billede arne_v Ekspert
23. februar 2005 - 21:03 #10
software har vel ingen subid og derfor bliver den taget i yderste gennemløb
ligesom hardware
Avatar billede alaflam Nybegynder
24. februar 2005 - 00:21 #11
men hvornår MINUSSER du $ind jeg kan kun se du plusser den ???
Avatar billede arne_v Ekspert
24. februar 2005 - 07:27 #12
Det er ikke nødvendigt at minusse.

$ind eksisterer i flere kopier - en for hver niveau af rekursion.
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