website met mysql
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!
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
<?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>';
}
?>
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>';
}
?>
Opzet is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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']);
?>
// 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...
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
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...
alvast bedankt!
dit heb ik ingevuld:
<html>
<head>
<title>Untitled</title>
</head>
<body>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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);
?>
$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>
$_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!!