Array Problemen.
Beste,
Ik ben bezig met me site en nu stuit ik op een probleem, ik heb een array met daarin me pagina's die geinclude mogen worden. Dit heeft een titel en een key, de key bepaald of het een pagina is die uit de db gehaald moet worden of een die geinclude word.
Dit is mijn code:
Wat ik nu dus steeds krijg is dat hij de key als waarde gebruikt terwijl ik dat niet wil, ik krijg nu dus steeds "Deze pagina bestaat niet" terwijl hij er gewoon in staat.
Wat kan ik hieraan doen / wat doe ik fout?
Ik ben bezig met me site en nu stuit ik op een probleem, ik heb een array met daarin me pagina's die geinclude mogen worden. Dit heeft een titel en een key, de key bepaald of het een pagina is die uit de db gehaald moet worden of een die geinclude word.
Dit is mijn code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Wat ik nu dus steeds krijg is dat hij de key als waarde gebruikt terwijl ik dat niet wil, ik krijg nu dus steeds "Deze pagina bestaat niet" terwijl hij er gewoon in staat.
Wat kan ik hieraan doen / wat doe ik fout?
Gewijzigd op 20/09/2010 10:02:47 door Milo S
Gesponsorde koppelingen:
je moet niet in_array hebben maar array_key_exists
en anders moet je de menu array anders opzetten
maar opzich kan je het ook gewoon afdoen met
en anders moet je de menu array anders opzetten
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$menu = array('Home' ,
'Biografie' ,
'Shows' ,
'Foto´s' ,
'Media' ,
'Gastenboek' ,
'Contact'
);
# Pagina ophalen
?>
$menu = array('Home' ,
'Biografie' ,
'Shows' ,
'Foto´s' ,
'Media' ,
'Gastenboek' ,
'Contact'
);
# Pagina ophalen
?>
maar opzich kan je het ook gewoon afdoen met
Gewijzigd op 19/09/2010 19:52:53 door Noppes Homeland
Nu heb ik dit, en dan wil ik kijken of home true of false is.
Is hij true
Dan haal ik hem uit de database
Is hij false
Dan ga ik hem includen
Maar op een een of andere manier lukt het maar niet met die array functies :s.
Ik heb dus iets gelijkwaardigs nodig aan array_values, alleen dan met functionaliteit van array_keys. Ik moet namelijk de value ophalen van bij voorbeeld gastenboek uit de array menu.
Ik zat weer veel te moeilijk te denken, ik kon natuurlijk gewoon
$menu[$page] == TRUE gebruiken :S, in ieder geval bedankt!
Is hij true
Dan haal ik hem uit de database
Is hij false
Dan ga ik hem includen
Maar op een een of andere manier lukt het maar niet met die array functies :s.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
# Het menu
$menu = array('Home' => TRUE,
'Biografie' => TRUE,
'Shows' => TRUE,
'Foto´s' => TRUE,
'Media' => TRUE,
'Gastenboek' => FALSE,
'Contact' => TRUE
);
# Pagina ophalen
if( array_key_exists( $page, $menu ) )
{
if( array_values( $menu, $page ) )
{
# Uit database
}
else
{
# Include
}
}
else
{
echo 'Deze pagina is verboden te bekijken.';
}
?>
# Het menu
$menu = array('Home' => TRUE,
'Biografie' => TRUE,
'Shows' => TRUE,
'Foto´s' => TRUE,
'Media' => TRUE,
'Gastenboek' => FALSE,
'Contact' => TRUE
);
# Pagina ophalen
if( array_key_exists( $page, $menu ) )
{
if( array_values( $menu, $page ) )
{
# Uit database
}
else
{
# Include
}
}
else
{
echo 'Deze pagina is verboden te bekijken.';
}
?>
Ik heb dus iets gelijkwaardigs nodig aan array_values, alleen dan met functionaliteit van array_keys. Ik moet namelijk de value ophalen van bij voorbeeld gastenboek uit de array menu.
Ik zat weer veel te moeilijk te denken, ik kon natuurlijk gewoon
$menu[$page] == TRUE gebruiken :S, in ieder geval bedankt!
Gewijzigd op 20/09/2010 10:09:14 door Milo S
Ik weet het niet zeker, maar ik denk dat de key foto's ook niet goed is. PHP zal er misschien wel mee om kunnen gaan, maar als je die keys via de GET mee gaat geven kan het nog wel eens voor problemen zorgen.
Gewijzigd op 20/09/2010 11:11:44 door Elwin - Fratsloos
edit: Even wat netter..
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
foreach($array as $key => $val)
{
if($val)
{
// database
}
else{
// include
}
}
{
if($val)
{
// database
}
else{
// include
}
}
Gewijzigd op 20/09/2010 12:18:41 door Merijn Venema
@ Merijn, dat wat jij stuurt zie ik bij voorbaat al dat het niet doet wat ik wil maar toch bedankt het werkt nu. Als je m'n laatste post had doorgelezen zie je ook dat het al werkte.
Alleen inderdaad dat foto's niet, enige idee hoe ik dit goed kan doen via een get?
Alleen inderdaad dat foto's niet, enige idee hoe ik dit goed kan doen via een get?
Gewijzigd op 22/09/2010 15:03:36 door Milo S
Gebruik foto_s
Maar dan geeft hij in me menu ook foto_s weer, want me menu genereer ik uit die array.
urlencode om van ' een %27 te maken.
Maar je hebt toch liever geen codes in je 'mooie' urls?
Maak gewoon een multidimensionale array:
Maak gewoon een multidimensionale array:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$pages = array(
'contact' => array(
'title' => 'Contact pagina',
'link' => 'Contact'
),
'media' => array(
'title' => 'Foto\'s en video\'s',
'link' => 'Media'
)
);
$currentPage = null;
foreach($pages as $key => $page) {
if($key == $_GET['route']) {
$currentPage = $page;
break;
}
}
if(is_null($currentPage))
throw new Exception404($_GET['route']);
print_r($currentPage);
?>
$pages = array(
'contact' => array(
'title' => 'Contact pagina',
'link' => 'Contact'
),
'media' => array(
'title' => 'Foto\'s en video\'s',
'link' => 'Media'
)
);
$currentPage = null;
foreach($pages as $key => $page) {
if($key == $_GET['route']) {
$currentPage = $page;
break;
}
}
if(is_null($currentPage))
throw new Exception404($_GET['route']);
print_r($currentPage);
?>
Gewijzigd op 22/09/2010 15:55:38 door Pim -



