Goedenavond,

Ik ben bezig met een website waarbij alles uit de database komt, en een simpel cms. Nu haal ik alles uit de database met if(isset($_GET['pagina'])). Wat ik graag wil is een switch met daarin de mogelijkheden van $_GET.

ik weet wel dat je een switch kan maken met $p = $_GET['pagina'], maar ik wil dus een switch waar pagina een case is.

Ik het voorbeeld wordt bij 'pagina' de normale pagina's gemaakt. Nieuws is in dit geval een speciale pagina, hiervoor heb ik ook een aparte beheer pagina.

Dus als voorbeeld:

Case 'pagina':
.....
break;

Case 'nieuws':
....
break;

Weet iemand of dit mogelijk is??
<?php
switch ($_GET['pagina']) {
case "index.php":
// go to index;
break;
case "about.php":
// goto about.php
break;
default:
// give 404 error;
}
?>

Wat is het probleem?
Ja hier had ik ook al aan zitten denken, maar ik vroeg me af of het mogelijk was om dit te doen:

<?php
switch ($_GET) {

case 'nieuws':
break;

case 'gastenboek':
break;
?>


enig idee of dit kan en zo ja hoe?
Als je een kant en klare oplossing wilt: plaats een vacature.
Als je wat wilt leren: Wat houdt je tegen om het te proberen? Voorbeeld van Frank lijkt me duidelijk genoeg. Anders is met Google ook nog het nodige te vinden over dit onderwerp.
So'n grote vraag is dit nou ook niet, om voor zo iets een vacature te plaatsen vindt ik een beetje overdreven.
Ik vraag me gewoon af of dit kan, het lijkt me geen code van 20 regels. Maar ($_GET) werkt niet, misschien is de oplossing simpel en dan hoor ik dat graag!
Nee, kijk maar eens wat er in $_GET zit...
@wouter

Ik weet dat je normaal alleen de waarde uit de url haalt zoals een id nummer of pagina, als ik er zo over nadenk dan lijkt het mij dat $_GET alleen de waardes uit de url haalt.

Is het mogelijk of niet? Als het niet mogelijk is dan doe ik het op frank zijn manier.

Alvast bedankt!
<?php
switch ($_GET['pagina']) {}
?>

inderdaad.
Maar waarom een switch?
Zeker als je alleen maar bestanden gaat includen: gewoon één (of twee) array('s) en dan in_array().
Tim $_GET is een array. Een array is een verzameling variabelen.
Ga hier eens mee aan de gang:

<?php

// ---------------------------------------------------------------------------
// Associatieve array (dus een array met waarden die je ergens mee associeert
// ---------------------------------------------------------------------------
// declaratie van associatieve een array:
$arr = array('id' => 1, 'name' => 'Tim');
// verander items in een array. Indien het item age nog niet bestaat wordt ie aangemaakt
$arr['age'] = 26;
// idem voor birthday
$arr['birthday'] = '01-01-1985';

// lus om door alle items heen te lopen:
foreach($arr as $key => $value)
echo $key.': '.$value.'<br/>';



// --------------------------
// normale (numerieke) array
// --------------------------
// declaratie van een array met 4 items
// een lege array declareren kan ook: $arr = array();
$arr2 = array(10, 15, 20, 25);

echo $arr2; // levert Array() (dit is dus fout)
echo $arr2[0]; //levert 10

// loop
foreach($arr2 as $key => $value)
echo $key.': '.$value.'<br/>';

?>
Ik kijk nu alleen of er een pagina is en zo ja dan wordt de bijbehorende content uit de database gehaald en in een template geplaatst.

Dus bijv:

if(isset($_GET['pagina'])) 
	{
		$paginaid = $_GET['pagina'];
	}


het idee was om dit in een switch te zetten.


switch (..)
case 'pagina':
$paginaid = $_GET['pagina'];
	
break;

case 'nieuws':
..dan hier de bijbehoorende code


Het kan ook op de oude manier, maar ik ga wel even kijken naar de array's. Ik denk dat dit later ook nog wel van pas kan komen.

Bedankt voor de reacties!

Reageren