Avatar billede steenolsen1 Nybegynder
26. september 2005 - 13:55 Der er 56 kommentarer og
2 løsninger

Udskrivning af menu i flere niveauer

Hej,

jeg er ved at lave et site, hvor der bruges en dropdown menu i javascript. Menustrukturen, skal dog udskrives via PHP, og det kniber lidt med at gennemskue det...

Strukturen ser sådan her ud:
var MENU_ITEMS =[
    ["Collection", "",
        ["Female", "index.php?vgid=1"],
        ["Male", "index.php?vgid=3"]
    ],
    ["About us", "",
        ["Profile", "index.php?vgid=3"]
    ]
];

Denne stump vil outputte en struktur a la dette:
Collection
-> Female (linker til index.php?vgid=1)
-> Male (linker til index.php?vgid=2)
About us
-> Profile (linker til index.php?vgid=1)

Den databasestruktur, der tages udgangspunkt i ser (i simplificeret form) sådan her ud:
vgid (INT)
vgnavn (VARCHAR)
parent_id (INT)

Jeg udskriver på nuværende tidspunkt til en tekstfil, som jeg så includer. Det går fint nok, men det er det med at udskrive strukturen i den rigtige orden det kniber med.
Avatar billede steenolsen1 Nybegynder
26. september 2005 - 13:56 #1
["Male", "index.php?vgid=3"] skulle selvfølgelig være
["Male", "index.php?vgid=2"]
Avatar billede horsmark Nybegynder
26. september 2005 - 15:07 #2
Well så skal du lige ændre på dit databasekald når du henter menuen fra db´en

SELECT * FROM min_menu WHERE parent_id = mit_parent_id ORDER BY vgnavn, id ASC
Avatar billede steenolsen1 Nybegynder
26. september 2005 - 15:13 #3
altså:
1) forespørgsel 1 der henter hovedgrupper
  while løkke der udskriver results
2) inde i whileløkken hentes underliggende varegrupper, where parent_id = id fra forespørgsel 1
  ny while løkke, der udskriver undergrupper
}
}

Den er jeg med på. Men hvordan får jeg skrevet det til filen? Er det bare en hulens masse fopen.....?
Avatar billede horsmark Nybegynder
26. september 2005 - 16:21 #4
Er du så langt at du har fået menuen ind i et multiarray således i php:
    $aMENU_ITEMS =
        array(
          "Collection" =>
              array    (
                  "Female"=> "index.php?vgid=1",
              "Male" => "index.php?vgid=3"
              ),
          "About us" =>
              array(
                  "Profile" => "index.php?vgid=3"
                    )
        );
Avatar billede steenolsen1 Nybegynder
26. september 2005 - 16:25 #5
Nej det er jeg ikke. Hvordan gør du det?
Avatar billede horsmark Nybegynder
26. september 2005 - 16:56 #6
noget ala dette:
    $aCollections = array()
    //Hent hovedmenuer
  $sql = "SELECT * FROM mintable WHERE parent_id = '' ORDER BY vgid ASC";
  $result = mysql_fetch_result($sql) or die( mysql_error() );
    while($row = mysql_fetch_array($result)){
    $aCollections[] = $row
    }
   
    //Tilføj undermenupunkter
    foreach( $aCollections as $aCollection ){
      $sql = "
        SELECT * FROM mintable
        WHERE parent_id = ".$aCollection['id']."
        ORDER BY vgid ASC";
      $result = mysql_fetch_result($sql) or die( mysql_error() );     
      while($row = mysql_fetch_array($result)){
      $aCollection[] = $row
      }
    }
   
    print_r($aCollections);
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 08:51 #7
Hej Horsmark - blev lige pludselig nødt til at smutte igår. Sorry...

Jeg har prøvet følgende:
        // Laver menuudskrift i korrekte struktur
        $aCollections = array();
              //Hent hovedmenuer
        $sql = "SELECT * FROM varegrupper WHERE parent_id = '' ORDER BY id ASC";
        $result = mysql_fetch_result($sql) or die( mysql_error() );
        while($row = mysql_fetch_array($result)){
            $aCollections[] = $row;
        }
        //Tilføj undermenupunkter
        foreach( $aCollections as $aCollection ){
            $sql = "SELECT * FROM varegrupper WHERE parent_id = ".$aCollection['id']." ORDER BY id ASC";
                  $result = mysql_fetch_result($sql) or die( mysql_error() );     
                  while($row = mysql_fetch_array($result)){
                      $aCollection[] = $row;
                  }
        }
        print_r($aCollections);

Og får følgende fejl:
Fatal error: Call to undefined function: mysql_fetch_result() in C:\Hjemmesider\test\admin\db_update.php on line 20

Linie 20 er første linie med $result = ...

Jeg kan ikke lige se, hvad der skulle være galt...
Avatar billede horsmark Nybegynder
27. september 2005 - 09:32 #8
hehe min fejl *GG* de to $result = mysql_fetch_result($sql) or die( mysql_error() ); skal være:
$result = mysql_query($sql) or die( mysql_error() );
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 11:04 #9
Jeg modtager ikke mails mere, når du skriver nye indlæg, selvom jeg abonnerer.... Mærkeligt for min mail fungerer ellers fint nok...

Nå skidt - det virker i hvert fald nu! Der bliver i hvert fald udskrevet et array :-)
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 11:08 #10
Så skal jeg bare have skrevet det til min fil... Jeg har forsøgt med:
$text = print_r($aCollections);
if(is_writeable($filnavn)) {
    fwrite($file, $text);
} else {
    echo $filnavn.' er ikke writeable';
}

Men når jeg kigger i filen, står der bare 1
Avatar billede horsmark Nybegynder
27. september 2005 - 11:24 #11
hey lav lige en print_r($aCollections) og smid den ind her :->
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 11:30 #12
Array ( [0] => Array ( [0] => 1 [id] => 1 [1] => Test på dansk [vgnavn] => Test på dansk [2] => [farve] => [3] => 1 [aktiv] => 1 [4] => 1 [sprog] => 1 [5] => 0 [parent_id] => 0 [6] => 0 [order_by] => 0 ) [1] => Array ( [0] => 2 [id] => 2 [1] => English category [vgnavn] => English category [2] => ff0000 [farve] => ff0000 [3] => 1 [aktiv] => 1 [4] => 2 [sprog] => 2 [5] => 0 [parent_id] => 0 [6] => 0 [order_by] => 0 ) [2] => Array ( [0] => 3 [id] => 3 [1] => Dansk test 2 [vgnavn] => Dansk test 2 [2] => [farve] => [3] => 1 [aktiv] => 1 [4] => 1 [sprog] => 1 [5] => 0 [parent_id] => 0 [6] => 0 [order_by] => 0 ) [3] => Array ( [0] => 5 [id] => 5 [1] => Dansk 3 [vgnavn] => Dansk 3 [2] => [farve] => [3] => 1 [aktiv] => 1 [4] => 1 [sprog] => 1 [5] => 0 [parent_id] => 0 [6] => 0 [order_by] => 0 ) [4] => Array ( [0] => 9 [id] => 9 [1] => afasdfasdf [vgnavn] => afasdfasdf [2] => 009900 [farve] => 009900 [3] => 1 [aktiv] => 1 [4] => 1 [sprog] => 1 [5] => 0 [parent_id] => 0 [6] => 0 [order_by] => 0 ) )
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 11:31 #13
Det her er nok lidt nemmere at forholde sig til:

Array
(
    [0] => Array
        (
            [0] => 1
            [id] => 1
            [1] => Test på dansk
            [vgnavn] => Test på dansk
            [2] =>
            [farve] =>
            [3] => 1
            [aktiv] => 1
            [4] => 1
            [sprog] => 1
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

    [1] => Array
        (
            [0] => 2
            [id] => 2
            [1] => English category
            [vgnavn] => English category
            [2] => ff0000
            [farve] => ff0000
            [3] => 1
            [aktiv] => 1
            [4] => 2
            [sprog] => 2
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

    [2] => Array
        (
            [0] => 3
            [id] => 3
            [1] => Dansk test 2
            [vgnavn] => Dansk test 2
            [2] =>
            [farve] =>
            [3] => 1
            [aktiv] => 1
            [4] => 1
            [sprog] => 1
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

    [3] => Array
        (
            [0] => 5
            [id] => 5
            [1] => Dansk 3
            [vgnavn] => Dansk 3
            [2] =>
            [farve] =>
            [3] => 1
            [aktiv] => 1
            [4] => 1
            [sprog] => 1
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

    [4] => Array
        (
            [0] => 9
            [id] => 9
            [1] => afasdfasdf
            [vgnavn] => afasdfasdf
            [2] => 009900
            [farve] => 009900
            [3] => 1
            [aktiv] => 1
            [4] => 1
            [sprog] => 1
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

)
Avatar billede horsmark Nybegynder
27. september 2005 - 12:26 #14
du skal lige have det tilrettet lidt :-)

        // Laver menuudskrift i korrekte struktur
        $aCollections = array();
              //Hent hovedmenuer
        $sql = "SELECT * FROM varegrupper WHERE parent_id = '' ORDER BY id ASC";
        $result = mysql_fetch_result($sql) or die( mysql_error() );
        while($row = mysql_fetch_array($result)){
            $aCollections[$row['vgnavn']] = $row;
        }
        //Tilføj undermenupunkter
        foreach( $aCollections as $key => $aCollection ){
            $sql = "SELECT * FROM varegrupper WHERE parent_id = ".$aCollection['id']." ORDER BY id ASC";
                  $result = mysql_fetch_result($sql) or die( mysql_error() );   
                  while($row = mysql_fetch_array($result)){
                      $aCollection[$key][$row['vgnavn'] = $row;
                  }
        }

Ændrimnger
1. Key i aCollections nu har vgnavn som nøgle
2. Undermenu påsættes sådan $aCollection[$key][$row['vgnavn'] = $row;
Avatar billede horsmark Nybegynder
27. september 2005 - 12:28 #15
nummer 2 er noget sludder... sorry sådan
$aCollection[$row['vgnavn'] = $row;
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 12:39 #16
Jeg rettede lige mysql_fetch_result til mysql_query ;-)

Når jeg udskriver arrayet ser det fint nok ud, men desværre producerer den stadig kun et indhold i min fil på 1 - hvordan kan det være? Er dette normalt ikke rigtigt nok?
        if(is_writeable($filnavn)) {
            fwrite($file, $text);
        } else {
            echo $filnavn.' er ikke writeable';
        }
Avatar billede horsmark Nybegynder
27. september 2005 - 12:49 #17
men prøv lige at tilrette mine ændringer og smid en print_r her igen (eller en url)
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 12:57 #18
Kan desværre ikke smide en url til dig, da jeg arbejder på min egen maskine.

Array
(
    [Test på dansk] => Array
        (
            [0] => 1
            [id] => 1
            [1] => Test på dansk
            [vgnavn] => Test på dansk
            [2] =>
            [farve] =>
            [3] => 1
            [aktiv] => 1
            [4] => 1
            [sprog] => 1
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

    [English category] => Array
        (
            [0] => 2
            [id] => 2
            [1] => English category
            [vgnavn] => English category
            [2] => ff0000
            [farve] => ff0000
            [3] => 1
            [aktiv] => 1
            [4] => 2
            [sprog] => 2
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

    [Dansk test 2] => Array
        (
            [0] => 3
            [id] => 3
            [1] => Dansk test 2
            [vgnavn] => Dansk test 2
            [2] =>
            [farve] =>
            [3] => 1
            [aktiv] => 1
            [4] => 1
            [sprog] => 1
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

    [Dansk 3] => Array
        (
            [0] => 5
            [id] => 5
            [1] => Dansk 3
            [vgnavn] => Dansk 3
            [2] =>
            [farve] =>
            [3] => 1
            [aktiv] => 1
            [4] => 1
            [sprog] => 1
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

    [afasdfasdf] => Array
        (
            [0] => 9
            [id] => 9
            [1] => afasdfasdf
            [vgnavn] => afasdfasdf
            [2] => 009900
            [farve] => 009900
            [3] => 1
            [aktiv] => 1
            [4] => 1
            [sprog] => 1
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

)
Avatar billede horsmark Nybegynder
27. september 2005 - 14:00 #19
er der ikke noget galt ? alle dine parent id´s er 0 (nul) ?
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 14:18 #20
Jeg har i alt 7 varegrupper, hvoraf de 2 har et parent_id - resten er 0
Avatar billede horsmark Nybegynder
27. september 2005 - 14:23 #21
smid lige din kode igen så ... der er en fejl da submenuerne ikke er med
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 14:39 #22
// Laver fil til senere include
$filnavn = "../incs/menu_items.js";
$file = fopen("$filnavn", "w");

include("incs/connect.php");
// Laver menuudskrift i korrekte struktur
$aCollections = array();
//Hent hovedmenuer
$sql = "SELECT * FROM varegrupper WHERE parent_id = '' ORDER BY id ASC";
$result = mysql_query($sql) or die( mysql_error() );
while($row = mysql_fetch_array($result)){
    $aCollections[$row['vgnavn']] = $row;
}
//Tilføj undermenupunkter
foreach( $aCollections as $key => $aCollection ){
        $sql = "SELECT * FROM varegrupper WHERE parent_id = ".$aCollection['id']." ORDER BY id ASC";
    $result = mysql_query($sql) or die( mysql_error() );   
    while($row = mysql_fetch_array($result)){
        $aCollection[$row['vgnavn']] = $row;
    }
}

echo '<pre>';
print_r($aCollections);
echo '</pre>';
if(is_writeable($filnavn)) {
    fwrite($file, $text);
} else {
    echo $filnavn.' er ikke writeable';
}
mysql_close($connection);
Avatar billede horsmark Nybegynder
27. september 2005 - 15:03 #23
tilrettelser:
$sql = "SELECT * FROM varegrupper WHERE parent_id = '' ORDER BY id ASC";

skal være

$sql = "SELECT * FROM varegrupper WHERE parent_id = 0 ORDER BY id ASC";

og i tilføjelse af submenuer (childs)

$aCollection[$row['vgnavn']] = $row;

skal være

$aCollection[$key][$row['vgnavn']] = array();
$aCollection[$key][$row['vgnavn']] = $row;
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 15:50 #24
Ok. Det giver følgende output:

Array
(
    [Test på dansk] => Array
        (
            [0] => 1
            [id] => 1
            [1] => Test på dansk
            [vgnavn] => Test på dansk
            [2] =>
            [farve] =>
            [3] => 1
            [aktiv] => 1
            [4] => 1
            [sprog] => 1
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

    [English category] => Array
        (
            [0] => 2
            [id] => 2
            [1] => English category
            [vgnavn] => English category
            [2] => ff0000
            [farve] => ff0000
            [3] => 1
            [aktiv] => 1
            [4] => 2
            [sprog] => 2
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

    [Dansk test 2] => Array
        (
            [0] => 3
            [id] => 3
            [1] => Dansk test 2
            [vgnavn] => Dansk test 2
            [2] =>
            [farve] =>
            [3] => 1
            [aktiv] => 1
            [4] => 1
            [sprog] => 1
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

    [Dansk 3] => Array
        (
            [0] => 5
            [id] => 5
            [1] => Dansk 3
            [vgnavn] => Dansk 3
            [2] =>
            [farve] =>
            [3] => 1
            [aktiv] => 1
            [4] => 1
            [sprog] => 1
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

    [afasdfasdf] => Array
        (
            [0] => 9
            [id] => 9
            [1] => afasdfasdf
            [vgnavn] => afasdfasdf
            [2] => 009900
            [farve] => 009900
            [3] => 1
            [aktiv] => 1
            [4] => 1
            [sprog] => 1
            [5] => 0
            [parent_id] => 0
            [6] => 0
            [order_by] => 0
        )

)

Og stadig blot 1 i filen
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 16:00 #25
Jeg har lidt svært ved at overskue alt det med arrays, så jeg kan desværre ikke være så deltagende som jeg gerne ville... Sorry.
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 16:01 #26
Jeg er i hvert fald taknemmelig for din hjælp!
Avatar billede horsmark Nybegynder
27. september 2005 - 17:05 #27
hmm yes arrays er en supernødvendig ting at få styr på :-) Så du bør nok læse lidt om det og prøve dig frem. Måske dette er et overkill og superforvirrende lige nu.

Læsestof:
- Starten...
  http://www.phpuniverset.dk/show_artikels.phtml?ArtikelID=31

- lidt sværere...
  http://dk2.php.net/types.array

- superlækkert måske lige hvad du behøver
  http://webmaster.hephey.dk/guide/81/
Avatar billede steenolsen1 Nybegynder
27. september 2005 - 17:13 #28
Tak for dine links - dem vil jeg studere lidt nærmere :-) Har vist engang været forbi hephey artiklen.... Virker i hvert fald bekendt :-)

Vil det sige, at du kaster mig ud på det dybe vand nu? :-)
Avatar billede horsmark Nybegynder
27. september 2005 - 22:46 #29
yes sir :-D thumbs up - vind i håret solen i ryggen og ud over stepperne :-)
Avatar billede steenolsen1 Nybegynder
28. september 2005 - 07:45 #30
Okay, jamen jeg må jo på med vanten så...

Inden vi lukker helt ned, vil du så ikke prøve at opridse - bare kort - hvad din tanke var. Så kan jeg prøve at arbejde videre den vej...

Og et sidste spørgsmål: Kan man ikke sætte en variabel lig print_r, altså:
$text = print_r($aCollections);
Avatar billede horsmark Nybegynder
28. september 2005 - 08:19 #31
yes grunden til at det er en rigtig god idé med arrays iforbindelse med menuer er at de opfører sig præcist som menustruktur som følgende:

Eksempel 1:
menubeholder =
  hovedmenu1 =
    undermenu1_1,
    undermenu1_2,
    undermenu1_3
  hovedmenu2,
  hovedmenu3,
  hovedmenu4 =
    undermenu4_1

Det er jo præcist sådan dit javascript array (eller rettere map) også ser ud:

Eksempel 2:
var MENU_ITEMS =[
    ["Collection", "",
        ["Female", "index.php?vgid=1"],
        ["Male", "index.php?vgid=3"]
    ],
    ["About us", "",
        ["Profile", "index.php?vgid=3"]
    ]
];

For hver gang der er "[" start og "]" som slut er dette et array ergo bruges den samme teknik til i javascript at bygge din menu.

Det jeg ville vise dig var at du i php er nødt til at opbygge denne arraystruktur ligeså for at holde sammen på din menu.

Når dette lykkedes er du klar til at gå skridtet videre nemmerlig med rekursive lykker hvor du så kan have uanede menupunkter efter hinanden. I dette tilfælde er det hovedmenu4 der er interessant :-)

Eksempel 3:
menubeholder =
  hovedmenu1 =
    undermenu1_1
    undermenu1_2 =
      underundermenu1_2_1
      underundermenu1_2_2
    undermenu1_3
  hovedmenu2
  hovedmenu3
  hovedmenu4 =
    undermenu4_1 =
      underundermenu4_1_1 =
        underundermenu4_2_1 =
          underundermenu4_2_1_1 =
            underundermenu4_2_1_1_1 =
            underundermenu4_2_1_1_2
            underundermenu4_2_1_1_3
      underundermenu4_1_2

Summasummarum:
1. Du bygger et php menu array og tilføjer parents og childs ved db opslag.
2. Du har nu et php menu array som i eksempel 1
3. Du bygger noget kode der bygger en streng indeholdende den samme mnu struktur blot som javascript (eksempel 2)
4. Du skriver javascriptstrukturen i en menufil
5. Du drikker en masse bajer og får en ordentligt skrald f....
6. Efter en laaang pause går du ud på nettet og søger efter php tree menu og kigger i koden efter funktioner der looper igennem et array og bygger træstrukturen REKURSIVT dvs at funktionen kalder sig selv igen og igen indtil der ikke er flere menupunkter...

Håber dette er til at forstå - kan selv huske for 1½ år siden da jeg selv skulle til at fatte det... Jeg kan kun sige - Du vil ALDRIG fortryde det - når du først kan overskue det !

Mvh
HorsMark
Avatar billede steenolsen1 Nybegynder
28. september 2005 - 08:25 #32
Tak for det - godt og illustrativt eksempel! Super!!

I punkt 1 nævner du "childs" - hvad er det?

Jeg har længe villet lære det, men når man går i stå tilpas mange gange, så mister man efterhånden modet. Nu har jeg en "opskrift" at gå efter, og det er virkelig i orden!!!

Øhhh.... Må man godt starte med punkt 5?
Avatar billede horsmark Nybegynder
28. september 2005 - 08:41 #33
mht til "Kan man ikke sætte en variabel lig print_r, altså: $text = print_r($aCollections);" så er svaret nej :-)

Igen her er der tale om rekursivitet.
Avatar billede horsmark Nybegynder
28. september 2005 - 08:44 #34
parent = forælder og child = barn til en forælder, dvs at et "forældre" menupunkt kan have mange "børne" submenupunkter se på det som et stamtræ :-) forældres forældre og børn børn :-)

hehe så check lige DENNE menustruktur -> http://kongehuset.dk/monarkiet/stamtraeer/gorm/

og ja punkt 5 er klart den der skal startes med
Avatar billede steenolsen1 Nybegynder
28. september 2005 - 08:48 #35
Ok :-)

Fuck ja - godt man ikke skulle programmere det, hvad. Eller er det lige så "nemt" som det du har prøvet at lave til mig. Det kunne det vel for så vidt godt blive...

Nå - men du må jo hellere få dine points :-) Tak for det!
Avatar billede horsmark Nybegynder
28. september 2005 - 21:37 #36
thx og pøjpøj med det *s*

<mvh>HorsMArk</mvh>
Avatar billede steenolsen1 Nybegynder
29. september 2005 - 07:36 #37
Tak - det skal til
Avatar billede horsmark Nybegynder
29. september 2005 - 07:41 #38
check evt mit bidrag her: http://exp.dk/spm/651742 det er den reneste måde at tænke og genere træstruktur på :-)
Avatar billede steenolsen1 Nybegynder
29. september 2005 - 07:55 #39
Tak for tippet - har testet det :-)

Den melder godt nok fejl ved foreach linien...
Invalid argument supplied for foreach()
Avatar billede horsmark Nybegynder
29. september 2005 - 08:06 #40
nårh ja skrev det blot i hånden uden at teste det :-)

tilret lige

  print $aNode['node_id']."<br>";
  generateTree($aNode['node_id'], $tab);

til

  print $aNode['id']."<br>";
  generateTree($aNode['id'], $tab);
Avatar billede horsmark Nybegynder
29. september 2005 - 08:07 #41
.oO(bliver sq snart nødt til at skrive en artikel om dette emne)
Avatar billede steenolsen1 Nybegynder
29. september 2005 - 08:09 #42
Det synes jeg da, at du skulle gøre - og så lige give mig et praj om det, når det er gået i luften. Det ville virkelig være kanon!

Får desværre stadig fejl i linien:
foreach ( $aTreeNodes as $aNode ) {
Avatar billede horsmark Nybegynder
29. september 2005 - 08:49 #43
koden er:

    $sql = " SELECT * FROM mintabel ORDER BY par_id, seq_id";
    $result = mysql_query($sql) or die( mysql_error() );
    while( $row = mysql_fetch_array($result) ){
        $aTreeNodes[] = $row;
    }

    generateTree(0);
    function generateTree($node_id = null, $tab = null) {
      global $aTreeNodes;
      // Eftersom Arrayet $aTreeNodes er global bliver ponteren ikke nulstillet derfor tager vi lige en kopi
      $aTree = $aTreeNodes;
        is_null($tab) ? $tab = 0 : $tab++;
      foreach ( $aTree as $aNode ){
            if ($aNode['par_id'] == $node_id) {
                for($t = 0; $t < $tab; $t++){
                    print "&nbsp;&nbsp;";
                }
              print $aNode['name']."<br>";
                generateTree($aNode['id'], $tab);
            }
        }
    }
Avatar billede horsmark Nybegynder
29. september 2005 - 08:49 #44
horsmark.com/test.php
Avatar billede steenolsen1 Nybegynder
29. september 2005 - 08:57 #45
Hmmm... Jeg får stadig den samme fejl. Kan jo godt se, at det virker på din hp - kan det være min server, der ikke er sat ordentlig op til det, eller hvad? Så kan jeg jo blive ved med at teste løs i uendeligheder:-)
Avatar billede horsmark Nybegynder
29. september 2005 - 09:05 #46
hvad er fejlen ?
Avatar billede steenolsen1 Nybegynder
29. september 2005 - 09:11 #47
Warning: Invalid argument supplied for foreach() in C:\Hjemmesider\tools\treemenu2.php on line 22

Linie 22 er denne her:
          foreach ( $aTree as $aNode ){
Avatar billede horsmark Nybegynder
29. september 2005 - 09:14 #48
er du på icq ?
Avatar billede steenolsen1 Nybegynder
29. september 2005 - 09:20 #49
Er ikke på ICQ, men messenger?
Avatar billede horsmark Nybegynder
29. september 2005 - 09:33 #50
well yes kan jeg også send evt en email til jesper@horsmark.com
Avatar billede steenolsen1 Nybegynder
29. september 2005 - 09:35 #51
Er hermed gjort
Avatar billede horsmark Nybegynder
29. september 2005 - 10:40 #52
hmm har ikke modtaget noget ?
Avatar billede steenolsen1 Nybegynder
29. september 2005 - 10:42 #53
steenolsen [ sol ] . dk

Har sendt det inde fra Messenger - under tilføj ny kontaktperson.
Avatar billede horsmark Nybegynder
29. september 2005 - 10:50 #54
fatter minus er det dit site : http://www.steenolsen.dk/
Avatar billede steenolsen1 Nybegynder
29. september 2005 - 10:52 #55
Ja, et gammelt site, som jeg kun bruger til at teste :-) Det site jeg arbejder på, ligger ikke på nettet. Jeg udvikler på min egen server (på min computer), og lægger det op på det aktuelle webhotel senere.
Avatar billede steenolsen1 Nybegynder
29. september 2005 - 10:52 #56
Har du oprettet mig på Messenger?
Avatar billede horsmark Nybegynder
29. september 2005 - 11:01 #57
heh jeg bruger miranda der både kan se messenger og icq mfl men hvis du smider en email direkte til mig med din email så adder jeg dig lige :-)
Avatar billede steenolsen1 Nybegynder
29. september 2005 - 11:04 #58
Er gjort :-)
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