Ik wil 1 webpagina hebben waar ik links een menu heb en rechts tekst. Die tekst wil ik uit een database halen.
Elke keer als je op een andere link klikt moet er rechts een andere text komen die uit een database is gehaald.

Wie Kan mij helpen of heeft een voorbeeldscript?

alvast heerl erg bedankt!
<?php
if(isset($_GET['pagina']) && !empty($_GET['pagina']))
{
$pagina = mysql_real_escape_string($_GET['pagina']);
}else{
$pagina = 'hoofdpagina';
}

$query = "SELECT titel, content FROM content WHERE titel_kort = '".$pagina."'";
$resultaat = mysql_query($query);

if($resultaat && mysql_num_rows($resultaat) == 1)
{
$rij = mysql_fetch_array($resultaat);
$titel = stripslashes($rij['titel']);
$content = stripslashes($rij['content']);
}else{
$titel = 'Sorry...';
$content = '<p>...ik heb mijn best gedaan maar kon de door u opgevraagde pagina niet in mijn database vinden!</p>';
}
?>
Staan genoeg scripts en tuts over in scriptlib...

Opzet is:
<?php
// Als $pid een getal is, dan die gebruiken, anders gewoon 1 gebruiken
$pid = is_int($_GET['id']) ? $_GET['id'] : 1;

// De query om de juiste pagina op te halen
$sql = "SELECT titel, content FROM pages WHERE id = " . $pid . " LIMIT 1;";
// De query uitvoeren
$res = mysql_query($sql) or trigger_error(mysql_error());
// De resultaten in een array zetten
$row = mysql_fetch_assoc($res);

// De titel en de content op het scherm zetten, nl2br zet de \r\n om in <br />
echo $row['titel'].'<br />'.nl2br($row['content']);
?>

Je tabel ziet er dan bijvoorbeeld zo uit:
+++++++++++++++++++++++++
+id+titel +content +
+++++++++++++++++++++++++
+1+Welkom+Welkom op mijn pagina+
+++++++++++++++++++++++++
+2+Page 2 +Welkom op pagina nr 2 +
+++++++++++++++++++++++++

Edit
Menu gaat dan zo:
<a href="index.php?id=1">Home</a><br />
<a href="index.php?id=2">Pagina 2</a>

Zoals Arjan doet kan ook, dan ga je alleen uit van de titel, wat ik zelf niet prettig vind werken...
Zie arjaninkenia.nl, ik werk met een kortetitel (sponsoring, nieuws etc) om een pagina op te zoeken. En daarna laat ik een uitgebreidere titel echoƩn. Het voordeel hiervan is dat je linkjes veel duidelijker zijn :). Verder heeft het na mijn weten geen nadelen tov een int. Eventueel zou je ipv een is_int() kunnen vergelijken tegen een array, maar dat is vrij dubbelop.
Mijn bedoeling is eigenlijk om heel de layout hetzelfde houden en dat alleen de tekst refresht (als dat mogelijk is) en uit database wordt gehaald
Dat is exact wat beide voorbeelden doen...
Erg bedankt voor de tip! maar alleen pagina 1 doet het weet iemand wat ik fout doe?

alvast bedankt!

dit heb ik ingevuld:
<html>
<head>
<title>Untitled</title>
</head>
<body>
<?php
$db = mysql_connect("localhost", "root")
or die("kan niet verbinden: " . mysql_error());
mysql_select_db("colourdes", $db);

// Als $pid een getal is, dan die gebruiken, anders gewoon 1 gebruiken
$pid = is_int($_GET['id']) ? $_GET['id'] : 1;

// De query om de juiste pagina op te halen
$sql = "SELECT titel, content FROM text WHERE id = " . $pid . " LIMIT 1;";
// De query uitvoeren
$res = mysql_query($sql) or trigger_error(mysql_error());
// De resultaten in een array zetten
$row = mysql_fetch_assoc($res);

// De titel en de content op het scherm zetten, nl2br zet de \r\n om in <br />
echo $row['titel'].'<br />'.nl2br($row['content']);
echo "<br>";
echo "<a href=\"uitlezen.php?id=1\">Home</a><br />";
echo "<a href=\"uitlezen.php?id=2\">Pagina 2</a>";
mysql_close($db);
?>



</body>
</html>
Heel simpel ;)
$_GET['id'] kan nooit een int zijn want het is altijd een str
je moet het dan checken met is_numeric.
(ik weet niet of dit waar is, maar met is_numeric werkt het wel!)

$pid = is_numeric($_GET['id']) ? $_GET['id'] : 1;
Erg bedankt het werkt!!

Reageren