Ik heb de navigatie op mn website bovenin en ik wil deze uit de SQL database halen.
Ook moet een nieuwe link automatisch zichtbaar worden in de nav als ik in de db er een toevoeg.
Het is ook de bedoeling dat hij automatisch de juiste tekst die bij de link hoort uitleest en in de content plaatst zonder dat de header, footer en menu bar worden vernieuwd.
Ik wil dus graag een soortgelijke URL als mijnsite.nl/index.php?pagina=1 of ?pagina=home.
Hij wil dat als er index.php?pagina=1 of ?pagina=home dat alle data die bij '1" of 'home' hoort uit de database halen, en hij zoekt een manier. nou ik kan je helpen: neem deze en deze pagina's eens door.
Ik heb pagina's doorgelezen, maar ik vind hier in niet echt een goed antwoord op mijn vraag :(
Het liefst zou ik iets willen zien in mijn index.php als:
"als er geen pagina is defineerd, dan pagina 1 (?pagina=1) laten zien en anders de desbetreffende andere pagina (?pagina=2,3,4 enz..) laten zien".
Denk aan een db inrichting als:
__________________________
|pagina_id | pagina_inhoud |
--------------------------
|1 |<html> enz... |
--------------------------
Ik ben nog niet bepaald bekent met php dus zou iemand misschien een voorbeeld kunnen posten?
Alvast bedankt...
Het is duidelijk, alleen was het niet de bedoeling om een pagina of script te includen.
Het liefst zou ik het enkel bij het index.php bestand houden.
eigenlijk zou de $pagina standaart op 1 moeten staan tenzij deze door een knop in de navigatie een andere waarde heeft gekregen en dat na het klikken op zo'n knop alleen de content als het ware refresht ofzo, en header, navigatie en footer het zelfde blijft.
de db van de navigatie ziet er ongeveer zo uit:
______________________
| navigatie_id | tekst |
----------------------
| 1 | Home |
| 2 | Info |
| 3 | Contact |
----------------------
Heb niet het idee dat je zelf erg veel moeite doet/hebt gedaan om een oplossing te vinden. En als je nog niet zo goed bekend bent met php, is dit toch een mooi moment om het zelf te leren/uit te zoeken. Mocht je een (zelfgemaakt) script hebben en daar vragen over hebben, kun je ze stellen.
Hint: je zult in je index.php een afvraging moeten doen, zoals Pim de Haan ook al aangeeft. In plaats van de include maak je dan een query, waarmee je de gegevens opvraagt uit je database.
eigenlijk zou de $pagina standaart op 1 moeten staan tenzij deze door een knop in de navigatie een andere waarde heeft gekregen en dat na het klikken op zo'n knop alleen de content als het ware refresht ofzo, en header, navigatie en footer het zelfde blijft.
Script van pim heeft dat.
[size=xsmall]Toevoeging op 17/08/2010 12:00:12:[/size]
Ik zou anders bij de vacatures aan iemand vragen of ie een systeempje voor je maakt, want zoals jij dat wilt, kan dat best wat code innemen.
Ik nu stukje code waarvan de navigatie werkt zoals ik het zou willen, ik krijg alleen nog niet de juiste pagina te zien als ik op een link klik.
mn db ziet er ongeveer zo uit:
________________________________________________
| pagina_id | pagina_inhoud | in_nav | nav_tekst |
------------------------------------------------
| 1 | ............. | 1 | Home |
| 2 | ............. | 1 | Info |
| 3 | ............. | 0 | Enquete |
| 4 | ............. | 1 | Contact |
------------------------------------------------
en zo ziet mn script er tot nu toe uit:
<html>
<title>test</title>
<head>
</head>
<body>
<?php
include "connect.php";
$query = "SELECT * FROM `cafe` WHERE `in_nav`=1 ORDER BY 'pagina_id' " ;
$sql = mysql_query($query) or die ( mysql_error( ) );
echo '<ul>';
Bijna klaar, vervang
<?php
$query = "SELECT * FROM `cafe` WHERE pagina_id = '".$pagina."' ";
// door
$page = isset($_GET['pagina']) ? (int) $_GET['pagina'] : 1; // SQL injection beveiliging
$query = "SELECT * FROM `cafe` WHERE pagina_id = '".$page."' ";
?>
Je moet nu alleen nog een foutafhandeling maken als er geen pagina gevonden wordt.