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
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
misschien dat je deze kan aanpassen:

bericht.php:

<html>
<head>
<title>Teken het gastenboek</title>
</head>
<BODY>

<font size="5">teken het gastenboek:</font>

<FORM ACTION="toevoegen.php" METHOD="post">
<input type="hidden" name="submit" value="yes">

Naam: <INPUT TYPE=text NAME="naam" SIZE=30 maxlength=80><br>

Team: <INPUT TYPE=text NAME="team" SIZE=30 maxlength=80><br>

E-mail: <INPUT TYPE=text NAME="email" SIZE=30 maxlength=80><br><br>

Bericht:<br>
<TEXTAREA NAME="bericht" ROWS=10 COLS=50></TEXTAREA>

<BR><BR>

<P><font size="2" face="Arial, Helvetica"><INPUT TYPE="submit" VALUE="Tekenen"> a.u.b. 1 x klikken (kan even duren)</FONT>

</FORM>
</BODY>
</HTML>


---------------------------------------


gastenboek.php:

<html>

<HEAD>
<TITLE>Gastenboek</TITLE>

</HEAD>

<BODY>


<center>
<a href="bericht.php">Schrijf bericht</a><p>
<?php

// 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);

// sql query voor invoegen gegevens
$sql = "INSERT INTO gastenboek (ip, datum, naam, team, email, bericht)
VALUES ('$ip', '$datum, $tijd uur', '$naam', '$team', '$email', '$bericht')";

// voer de query uit en eventuele foutmelding
mysql_query($sql) or die("Er is een storing opgetreden. Probeer het later opnieuw");

// bevestiging van het tekenen en doorlinken (refresh) naar de hoofdpagina
echo "
<html>
<head><title></title>
<META HTTP-EQUIV='Refresh' CONTENT='1; URL=gastenboek.php'>
</head>
<BODY TEXT='#F9FCC5' LINK='Yellow' VLINK='#B4C109' ALINK='#B4C109' BGCOLOR='Blue'>
Een ogenblik a.u.b.<br>
Uw bericht wordt toegevoegd.....
</body>
</html>
";
}}
?>
ik ga niet een compleet script voor je maken :)

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).
bedankt, ik ga het ff proberen, als het niet werkt dan hoor ik het wel. Hoi
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>
";
}}
?>
<input type=hidden name=blaat value=\"$blaat\">
moet ie dan ongeveer zo:

$sql = "select id from tabel order by id limit 0,1";
$total = mysql_num_rows($result);
mysql_result($res, 0);
$sql = "INSERT INTO gastenboek (ip, date, time, name, email, message, blaat)
VALUES ('$ip', '$date', '$time', '$name', '$email', '$message', '<input type=hidden name=blaat value=\"$blaat\">')";


ik weet niet goed waar ik die hiddenfield moet plaatsen en of ik bij de insert to ook blaat moet zetten
die hidden field is gewoon html

echo-en dus..

en wat betreft die mysql doe je het helemaal verkeerd. na ene '$sql = ""...' moet je mysql_query($sql) gebruiken..

url adres:
http://www.phphulp.nl/php/tutorials/index.php?cat=3&id=2

hierop kun je dus precies lezen hoe dat werkt exacte pagina van die tutorial is deze

http://www.phphulp.nl/php/tutorials/index.php?cat=3&id=2&pid=6

lees eerst ff.. denk dat je dan wel weet hoe het moet..

Reageren