Mysql - guestbook

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

05/10/2003 12:39:00
Quote Anchor link
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
 
PHP hulp

PHP hulp

07/12/2021 14:02:59
 
B a s
Beheerder

B a s

05/10/2003 13:24:00
Quote Anchor link
probeer deze eens..

http://www.phphulp.nl/php/scripts/index.php?cat=6&id=54

ik wil hem wel aanpassen voor je, maaarr heb nu niet veel tijd dus vanavond ff oke?
 

05/10/2003 17:04:00
Quote Anchor link
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
 

05/10/2003 17:09:00
Quote Anchor link
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>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?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=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $waarde1+5; ?>
">volgende</a>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
}

// als de laatste pagina wordt weergegeven moet alleen vorige werken (volgende heeft
// geen zin)

elseif($waarde1+5>$aantalberichten)
{

?>

<a href="gastenboek.php?waarde1=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $waarde1-5; ?>
">vorige</a>
volgende
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
}

// is geen van bovenstaande if geldig moet vorige en volgende allebei werken
else
{
?>

<a href="gastenboek.php?waarde1=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $waarde1-5; ?>
">vorige</a>
<a href="gastenboek.php?waarde1=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $waarde1+5; ?>
">volgende</a>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?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>


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


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?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>
"
;  
}}

?>
 
B a s
Beheerder

B a s

05/10/2003 18:25:00
Quote Anchor link
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).
 

05/10/2003 18:40:00
Quote Anchor link
bedankt, ik ga het ff proberen, als het niet werkt dan hoor ik het wel. Hoi
 

05/10/2003 19:08:00
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?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>
";  
}}

?>
 
B a s
Beheerder

B a s

05/10/2003 20:59:00
Quote Anchor link
<input type=hidden name=blaat value=\"$blaat\">
 
B a s
Beheerder

B a s

05/10/2003 21:02:00
Quote Anchor link
en je moet niet alles letterlijk overnemen :) lees ff tutorial over mysql:

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

of

http://www.phphulp.nl/php/tutorials/?cat=3&id=52

.. of de howto:
www.phphulp.nl/docs/howto/
 

06/10/2003 15:14:00
Quote Anchor link
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
 
Brian Valenburg

Brian Valenburg

06/10/2003 15:21:00
Quote Anchor link
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..
Gewijzigd op 06/10/2003 15:27:00 door Brian Valenburg
 

06/10/2003 15:44:00
Quote Anchor link
zo dan:

$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)";
VALUES ('$ip', '$date', '$time', '$name', '$email', '$message')
mysql_query($sql) or die("Er is een storing opgetreden. Probeer het later opnieuw");

ik zou me god niet weten waar ik dat blaat gebeuren moet plaatsen, kan jij dat script niet even over nemen en hem even weizigen. Als je wilt graag.
hoi
 
Brian Valenburg

Brian Valenburg

06/10/2003 16:27:00
Quote Anchor link
ik zei dat je het ook moest lezen :p maar omdat je het zo aardig vraagt

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
$sql
= "select id from tabel order by id limit 0,1";
$result = mysql_query($sql);
$idnummer = mysql_result($res, 0);

// $idnummer is het eerste id nummer

$sql = "INSERT INTO gastenboek (ip, date, time, name, email, message) VALUES ('$ip', '$date', '$time', '$name', '$email', '$message')";
mysql_query($sql) or die(mysql_error());
?>
 

06/10/2003 16:53:00
Quote Anchor link
Ok, ik ben er erg blij mee, maar wat moet ik nu precies met dat blaat gebeuren doen? Dat is nog iets wat over is.
 
B a s
Beheerder

B a s

07/10/2003 10:26:00
Quote Anchor link
$blaat = nu vervangen door $idnummer .. als je echt niet weet wat ik hieronder doe, leer dan ff php want ga niet steeds scriptjes voor je schrijven kerel ;)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?

if (!$HTTP_POST_VARS["submit"])
{

  $sql = "select id from gastenboek order by id limit 0,1";
  $result = mysql_query($sql);
  $idnummer = mysql_result($res, 0);  

  // $idnummer is het eerste id nummer
  echo "
  <form method=post action=$PHP_SELF>
  <input type=hidden name=idnummer value=\"$idnummer\">
  <br>
  ANDERE INPUT FIELDS
  <br>
  <input type=submit name=submit value=submit>"
;

}

else
{

  $sql = "INSERT INTO gastenboek (ip, date, time, name, email, message) VALUES ('$ip', '$date', '$time', '$name', '$email', '$message')";
  mysql_query($sql) or die(mysql_error());

  $sql = "DELETE FROM gastenboek WHERE id = '$HTTP_POST_VARS[idnummer]'";
  $res = mysql_query($sql) or die(mysql_error());
}

?>
Gewijzigd op 07/10/2003 10:27:00 door B a s
 

07/10/2003 16:42:00
Quote Anchor link
ja ok ik begrijp het dat jij het zo ziet, maar ik weet wel hoe het werkt, maar nooit precies hoe ik het moet schrijven.

Maar ik heb nog een vraagje, weten jullie waardoor het komt dat als ik een tweede tabel aanmaak in mijn database en deze probeer te laten zien in een pagina, er geen verbinding tot stand kan komen?
 
B a s
Beheerder

B a s

07/10/2003 16:43:00
Quote Anchor link
hmm.. geen idee..? wat gaat er precies fout? en zou je hier een nieuwe topic over kunnen openen? want das probleem 2 :))

misschien is het ook handig om jezelf te registreren, hoef je niet steeds je naam / email adres in te vullen.. en je aantal posts worden dan geteld.
 
Jaap

Jaap

07/10/2003 18:04:00
Quote Anchor link
Soory bas, maar hij werkt nog steeds niet, ik weet niet wat het is,
bestaat er niet een sql als er 30 id's zijn dat ie dan steeds bij een nieuwe de eerste delete.
 
Jaap

Jaap

08/10/2003 15:46:00
Quote Anchor link
moet ik misschien een veld in mijn tabel invoegen, of heeft id een andere functie, ik heb nou bij id: int en auto_increment, primary en unique key
 
B a s
Beheerder

B a s

08/10/2003 16:02:00
Quote Anchor link
lees ff wat tutorials over php en mysql jaap.. zo gaat het je echt niet lukken
 
B a s
Beheerder

B a s

08/10/2003 16:02:00
Quote Anchor link
Edit:

dubbele post :S
Gewijzigd op 08/10/2003 16:02:00 door B a s
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.