Mysql - guestbook
Weet iemand hoe dit moet
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?
Als je dat zou willen doen graag.
hoi
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)
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
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)
{
?>
// 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)
1
2
3
4
5
6
7
8
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)
{
?>
}
// 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=">volgende</a>
Code (php)
1
2
3
4
5
6
7
8
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)
{
?>
}
// als de laatste pagina wordt weergegeven moet alleen vorige werken (volgende heeft
// geen zin)
elseif($waarde1+5>$aantalberichten)
{
?>
<a href="gastenboek.php?waarde1=">vorige</a>
volgende
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
}
// is geen van bovenstaande if geldig moet vorige en volgende allebei werken
else
{
?>
}
// is geen van bovenstaande if geldig moet vorige en volgende allebei werken
else
{
?>
<a href="gastenboek.php?waarde1=">vorige</a>
<a href="gastenboek.php?waarde1=">volgende</a>
Code (php)
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
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>";
}
?>
}
// 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)
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
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>
";
}}
?>
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 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
Code (php)
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
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>
";
}}
?>
// 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\">
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/
$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
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
$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
Code (php)
1
2
3
4
5
6
7
8
9
10
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());
?>
$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());
?>
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.
Code (php)
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
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());
}
?>
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
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?
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.
bestaat er niet een sql als er 30 id's zijn dat ie dan steeds bij een nieuwe de eerste delete.
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
lees ff wat tutorials over php en mysql jaap.. zo gaat het je echt niet lukken
Edit:
dubbele post :S
dubbele post :S
Gewijzigd op 08/10/2003 16:02:00 door B a s