Avatar billede michaeltryl Seniormester
19. maj 2012 - 17:24 Der er 5 kommentarer og
1 løsning

array problem

Jeg har nedstående kode.
DEn virker fint nok, lige indtil jeg putter $kat_ekstra ind i arrayet.
Jeg kan ikke se hvor fejlen er, så håber der er en her som kan hjælpe mig videre.

$kund = mysql_query("SELECT gruppe_id, gruppe_titel FROM grupper WHERE gruppe_under= '$g' ORDER BY gruppe_titel ASC") or die(mysql_error());
while($b = mysql_fetch_array($kund))
{
$gruppe_id = $b[gruppe_id];
$gruppe_titel = $b[gruppe_titel];
$kat_ekstra[] = "$gruppe_titel, index.php?id=$gruppe_id";
}

$menu_elementer = array();
$menu_elementer["Forside, index.php, forside"]=array();
$menu_elementer["Profil, bruger/profil.php, profil"]=array();
$menu_elementer["Favoritter, bruger/favoritter.php, favorit"]=array();
if($hoved_gruppe_ok == "ja")
{
$menu_elementer["Alle kategorier, se-gruppe.php, kategorier, g=$g"] = $kat_ekstra;
$menu_elementer["Tilføj $smaa_gruppe_titel, tilfoj/tilfoj.php, tilfoj, g=$g"]=array()    ;
}
Avatar billede DeeDawg Nybegynder
19. maj 2012 - 23:58 #1
Det ville hjælpe, hvis du beskrev hvad dit problem er. Du skriver bare at der sker en fejl, men du fortæller ikke hvilken fejl.

Umiddelbart, kan jeg kun se 1 problem. Du kan ikke bare indsætte variabler ind i navnet på en key, som du kan med normale strings. Det skal gøres således:

<?php
    $menu_elementer["Alle kategorier, se-gruppe.php, kategorier, g=".$g] = $kat_ekstra;
    $menu_elementer["Tilføj ".$smaa_gruppe_titel.", tilfoj/tilfoj.php, tilfoj, g=".$g] = array();
?>

Udover det, er det en lidt mærkelig måde du vælger at bruge et array på. Indhold skal ikke defineres i keys, men i deres indhold. Fx:

<?php
    $menu_elementer[] = array(
        "navn"  => "Forside",
        "url"  => "index.php",
        "dunno" => "forside"
    );
   
    $menu_elementer[] = array(
        "navn"  => "Profil",
        "url"  => "bruger/profil.php",
        "dunno" => "profil"
    );
?>
Avatar billede michaeltryl Seniormester
20. maj 2012 - 01:13 #2
Det hjalp og sætte ".." omkring variablerne.

Kan godt se det er smartere den måde du har lavet array på og har også prøvet, men kan ikke finde ud af at lave det til et multi array

f.eks.
    $menu_elementer[] = array(
        "navn"  => "Profil",
        "url"  => "bruger/profil.php",
        "dunno" => "profil"
    );
Dette er hoved menu punkt. og derunder skal så komme x antal links.
hvordan vil du koble dem på f.eks.

Ret profil, bruger/ret-profil.php
Artikler, bruger/artikler.php
Avatar billede michaeltryl Seniormester
20. maj 2012 - 02:52 #3
jeg fandt ud af det
$menu_elementer[] = array
(
"navn" => "Tilføj " . $smaa_gruppe_titel . "",
"url" => "bruger/favoritter.php",
"menu" => "tifoj",
"ekstra" => "g=".$g."",
'submenu' => array (
            array (
            'url' => '/accessibility-training.htm',
            'tekst' => 'Accessibility Training',
            ),
            array (
            'url' => '/accessibility-aaa.htm',
            'tekst' => 'AAA Myth',
            ),
            )
);

men vil jeg lave submenu ud fra en database går det galt.
har prøvet nedstående og en del andre løsninger, men denne herunder ser rigtig ud når jeg udskriver med <pre></pre>.
Der udskrives dog intet, når jeg bruger foreach (se nederst)

$i=0;
$kund = mysql_query("SELECT gruppe_id, gruppe_titel FROM grupper WHERE gruppe_under= '$g' ORDER BY gruppe_titel ASC") or die(mysql_error());
while($b = mysql_fetch_array($kund))
{
$gruppe_id = $b[gruppe_id];
$gruppe_titel = $b[gruppe_titel];
$kat_ekstra[$i][$i][url] = "index.php?id=".$gruppe_id."";
$kat_ekstra[$i][$i][tekst] = "".$gruppe_titel."";
$i++;
}

jeg indsætter så sådan her
'submenu' => $kat_ekstra
har også prøvet med ".$kat_ekstra."

foreach($menu_elementer as $menu_id => $menuer)
{
echo "<div class=\"menuknap_aktiv\">$menuer[navn]</div>";

if (is_array($menuer['submenu']) && $menuer[menu] == $menu)
{
echo "<div class=\"undermenu\">";
foreach($menuer['submenu'] as $under_menu_id => $under_menuer)
{
echo"<a class=\"undermenu\" href=\"$side/$under_menuer[url]\">$under_menuer[tekst]</a><br>";
}
echo "</div>";
}
}
Avatar billede michaeltryl Seniormester
20. maj 2012 - 02:59 #4
Jeg fandt en løsning, men ikke hvis jeg vil lave array fra databasen.

Uden database
$menu_elementer[] = array
(
"navn" => "Tilføj " . $smaa_gruppe_titel . "",
"url" => "bruger/favoritter.php",
"menu" => "tifoj",
"ekstra" => "g=".$g."",
'submenu' => array (
            array (
            'url' => '/accessibility-training.htm',
            'tekst' => 'Accessibility Training',
            ),
            array (
            'url' => '/accessibility-aaa.htm',
            'tekst' => 'AAA Myth',
            ),
            )
);

mit db udtræk ser sådan ud. Har også prøvet andre, men denne ser rigtig ud når jeg udskriver den med <pre></pre>, men der vises intet når jeg udskriver med foreach (se nederst)

$i = 0;
$kund = mysql_query("SELECT gruppe_id, gruppe_titel FROM grupper WHERE gruppe_under= '$g' ORDER BY gruppe_titel ASC") or die(mysql_error());
while($b = mysql_fetch_array($kund))
{
$gruppe_id = $b[gruppe_id];
$gruppe_titel = $b[gruppe_titel];

$kat_ekstra[$i][$i][url] = "index.php?id=".$gruppe_id."";
$kat_ekstra[$i][$i][tekst] = "".$gruppe_titel."";

$i++;
}

indsætter sådan
'submenu' => $kat_ekstra
har også prøvet med ".$kat_ekstra."

foreach($menu_elementer as $menu_id => $menuer)
{
echo "<div class=\"menuknap_aktiv\">$menuer[navn]</div>";

if (is_array($menuer['submenu']) && $menuer[menu] == $menu)
{
echo "<div class=\"undermenu\">";
foreach($menuer['submenu'] as $under_menu_id => $under_menuer)
{
echo"<a class=\"undermenu\" href=\"$side/$under_menuer[url]\">$under_menuer[tekst]</a><br>";
}
echo "</div>";
}
}
Avatar billede michaeltryl Seniormester
20. maj 2012 - 09:41 #5
beklager dobbelt posten sidst,men det så ikke ud til den blev postet 1. gang.
Så lykkedes det.
udtrækket er


$kund = mysql_query("SELECT gruppe_id, gruppe_titel FROM grupper WHERE gruppe_under= '$g' ORDER BY gruppe_titel ASC") or die(mysql_error());
while($b = mysql_fetch_array($kund))
{
$gruppe_id = $b[gruppe_id];
$gruppe_titel = $b[gruppe_titel];
$kat_ekstra[$i][url] = "index.php?id=".$gruppe_id."";
$kat_ekstra[$i][tekst] = "".$gruppe_titel."";
$i++;
}

og indsættes sådan
'submenu' => $kat_ekstra

DeeDawg du må godt lægge et svar. og tak for hjælpen som hjalp mig videre
Avatar billede DeeDawg Nybegynder
20. maj 2012 - 13:20 #6
Det er helt i orden, michaeltryl. Vi skal alle trækkes med Eksperten.dk's uduelige site. Dejligt at se, du kom videre selv med lidt hjælp. Det er jo det vi lærer mest af. :)
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