Hallo, kan iemand mij helpen met het maken van een Mysql guestbook. Wat ik wil kan ik nergens vinden dus ik dacht laat ik het hier eens proberen. Ik ben namelijk op zoek naar een guestbook die maar een pagina laat zien en waar maar bv. 30 berichten in kunnen staan, dus geen page navigation. Dit kan ik echter wel zulke scripts vinden, maar ik zou graag willen dat als er bv. maar 30 berichten in mogen staan, dat als de 31ste bericht wordt gepost, automatisch het eerste geposte bericht op mijn database wordt verweidert.
Weet iemand hoe dit moet
ik wil hem wel aanpassen voor je, maaarr heb nu niet veel tijd dus vanavond ff oke?
?
Onbekende gebruiker
05-10-2003 17:04
Als jij hem aanpast zoals ik ik heb aangegeven dan kan ik daar echt wel wat mee ja, dus gewoon 1 pagina, geen page navigation dus, max 30 berichten en de eerste automatisch van de database verwijderd.
Als je dat zou willen doen graag.
hoi
?
Onbekende gebruiker
05-10-2003 17:09
misschien dat je deze kan aanpassen:
bericht.php:
<html>
<head>
<title>Teken het gastenboek</title>
</head>
<BODY>
// deze waarde geeft aan hoeveel berichten er per pagina worden getoont
$waarde2=5;
// maak verbinding met sql server
$server = mysql_connect("database.myhost.com","username","password");
// selecteer de database
mysql_select_db("database", $server);
// sql query voor uitlezen van id
$sql = "SELECT id FROM gastenboek";
// zet uitslag in resultaat
$resultaat = mysql_query($sql);
// bepaal het aantal berichten
$aantalberichten = mysql_num_rows($resultaat);
// bepalen aantal pagina's. het aantal berichten wordt gedeelt door het aantal te
// tonen berichten per pagina. vervolgens wordt dit naar boven afgerond
$aantalpagina = ceil(mysql_num_rows($resultaat)/$waarde2);
// de pagina die nu zichtbaar is
$huidigepagina = $waarde1/$waarde2+1;
// als het aantal berichten kleiner is dan 6 moeten vorige en volgende niet werken
if($aantalberichten<6)
{
?>
vorige
volgende
<?php
}
// als het aantal berichten meer is dan 5 en men staat op pagina 1 moet alleen
// volgende werken (vorige kan niet)
elseif($waarde1==0)
{
?>
vorige
<a href="gastenboek.php?waarde1=<? echo $waarde1+5; ?>">volgende</a>
<?php
}
// als de laatste pagina wordt weergegeven moet alleen vorige werken (volgende heeft
// geen zin)
elseif($waarde1+5>$aantalberichten)
{
?>
<a href="gastenboek.php?waarde1=<? echo $waarde1-5; ?>">vorige</a>
volgende
<?php
}
// is geen van bovenstaande if geldig moet vorige en volgende allebei werken
else
{
?>
<a href="gastenboek.php?waarde1=<? echo $waarde1-5; ?>">vorige</a>
<a href="gastenboek.php?waarde1=<? echo $waarde1+5; ?>">volgende</a>
<?php
}
// laat de huidige pagina zien, het totaal aantal pagina's en het aantal berichten
echo "<br>Pagina $huidigepagina van $aantalpagina ($aantalberichten berichten)<hr>";
// maakt gastenboek.php automatisch gastenboek.php?waarde1=0
if(empty($waarde1))
{ $waarde1=0; }
// sql query voor uitlezen van de database
$sql = "SELECT * FROM gastenboek ORDER BY id DESC LIMIT $waarde1,$waarde2";
// voer de query uit
$resultaat = mysql_query($sql);
// een lus om alles te zien (in een tabel)
while ($record = mysql_fetch_object($resultaat))
{
echo "<center>
<table width='80%' border='0'>
<tr><td></td><td align='right'>$record->datum</font></td></tr>
<tr><td width='30%'><font size='4'>Naam:</font></td>
<td><font size='4'>$record->naam</font></td><tr>
<tr><td><font size='4'>Team:</font></td>
<td><font size='4'>$record->team</font></td></tr>
<tr><td><font size='4'>E-mail</font></td>
<td><font size='4'>$record->email</font></td></tr>
<tr><td><font size='4'>Bericht:</font></td>
<td><font size='4'>$record->bericht</font></td></tr></table>
<table width='80%'><tr><td><hr></td></tr></center>";
}
?>
</center>
</BODY>
</HTML>
---------------------------------------
<?php
if ($submit) {
// controle of naam en bericht een lege waarde heeft
if($naam=='' or $bericht=='')
{echo"
<html>
<head><title>Er is een fout opgetreden</title>
</head>
<BODY>
<center>
<table border='1'>";
// plaats de tekst als naam niet is ingevuld
if($naam=='')
{ echo "<tr><td><font size='4'>Er is geen naam ingevuld.<br>Dit is een verplicht veld.</font></td><tr>"; }
// plaats tekst als bericht niet is ingevuld
if($bericht=='')
{ echo "<tr><td><font size='4'>Er is geen bericht ingevuld.<br>Dit is een verplicht veld.</font></td></tr>"; }
echo "
</table>
<br>
<font size='3'>
<a href='#' onClick='history.go(-1)'>Klik hier om het bericht aan te passen </a>
</font>
</center></body>
</html>";
}
else{
// opslaan van ip-adres, datum en tijd
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
$tijd = date('H') + 1;
$tijd = "$tijd".date(':i:s');
$datum = date('d-m-Y');
// stuur een e-mail wanneer er in het gastenboek wordt geschreven
mail(
"eigen e-mail adres",
"onderwerp",
"IP: $ip
Datum: $datum, $tijd uur
Naam : $naam
Team : $team
E-mail : $email
Bericht: $bericht
"
);
// maak verbinding met sql server
$server = mysql_connect("database.myhost.com","username","password");
// selecteer de database
mysql_select_db("database", $server);
// Zet een een extra \ indien nodig
$naam = addslashes($naam);
$team = addslashes($team);
$email = addslashes($email);
$bericht = addslashes($bericht);
ik wil wel vertellen hoe je het moet doen.. je moet gewoon kijken hoeveel rijen er in de database staan ten eerste
dit kun je doen met mysql_num_rows();
daarna ga je kijken wat het eerste id nummer is, dit doe je door deze SQL uit te voeren:
select id from tabel order by id limit 0,1;
met mysql_result($res, 0); kun je dan de id nummer pakken..
dit nummer sla je op in $blaat bijvoorbeeld.
$blaat geef je dan mee in een hidden input veld,
<input type=hidden name=blaat value=\"$blaat\">
als je dan een bericht post, dan verwijder je $blaat (als er meer dan 10 rijen in de database staan).
?
Onbekende gebruiker
05-10-2003 18:40
bedankt, ik ga het ff proberen, als het niet werkt dan hoor ik het wel. Hoi
?
Onbekende gebruiker
05-10-2003 19:08
Ik heb nu iets gemaakt maar ik weet niet of ik het goed heb gedaan, zal wel niet, maar zou je ook ff willen kijken of ik de date, time en ip goed heb gedaan.
<?php
// opslaan van ip-adres, datum en tijd
$ip = $_SERVER["REMOTE_ADDR"];
$time = date('H:i')
$date = date('d-m-Y');
// maak verbinding met sql server
$db = mysql_connect("host", "name", "password");
// selecteer de database
mysql_select_db("databasename",$db);
// Zet een een extra \ indien nodig
$name = addslashes($name);
$email = addslashes($email);
$message = addslashes($message);
// sql query voor invoegen gegevens
mysql_num_rows();
$sql = "select id from tabel order by id limit 0,1";
mysql_result($res, 0);
$sql = "INSERT INTO gastenboek (ip, date, name, email, message)
VALUES ('$ip', '$date', '$time', '$name', '$email', '$message')";
<input type=hidden name=blaat value=\"$blaat\">
// voer de query uit en eventuele foutmelding
mysql_query($sql);
// bevestiging van het tekenen en doorlinken (refresh) naar de hoofdpagina
echo "
<html>
<head><title></title>
<META HTTP-EQUIV='Refresh' CONTENT='1; URL=shoutbox.php'>
</head>
<body>
</body>
</html>
";
}}
?>