Gastenboekbeheer fouten
Ik heb een gastenboek geprogrammeerd in php mbv sql en dat werkt. Nu wilde ik ook een beheerpagina maken, met bij elk bericht een knop 'verwijder' en dan de functie erbij dat het bijbehorende bericht verwijderd wordt.
Ik kom er echter niet uit. Ik heb al verschillende errors gehad, maar bij de code zoals ik hieronder heb neergezet, krijg ik:
Parse error: syntax error, unexpected $end in C:\Xampp\htdocs\gastenboekbeheer.php on line 54
Voordat ik de reactie krijg "haakjes tellen", dit heb ik gedaan, en daar ligt het volgensmij niet aan.
Kan iemand mij helpen?
Hier de code van de beheerpagina:
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
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
<?php
$mysql_user = "";
$mysql_pass = "";
$mysql_host = "localhost";
$mysql_dbn = "gastenboek";
if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
echo "database connectie mislukt!";
exit();
}
elseif (isset ($_POST["verwijderen"]))
{
echo "gelukt, waarde: ". $_POST["verwijderen"];
}
else
{
echo "<h1>Gastenboek</h1>";
echo "<p>Voeg een <a href=\"" . $_SERVER['PHP_SELF'] . "?show=add\">nieuw bericht</a> toe aan het gastenboek.</p>";
$sql = "SELECT id,naam,email,bericht,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM reunisten_gastenboek ORDER BY datum DESC";
$res = mysql_query($sql);
$srv = $_SERVER['PHP_SELF'];
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
$row['email'] = htmlentities($row['email']);
$row['naam'] = nl2br(htmlentities($row['naam']));
$row['bericht'] = nl2br(htmlentities($row['bericht']));
$row['id'] = nl2br(htmlentities($row['id']));
echo "<p><fieldset><a href=\"mailto:" . $row['email'] . "\">" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>: <br />";
echo $row['bericht'] . "</fieldset></p>";
$idknop = $row['id'];
echo <<<EOD
<form action="$srv" method="post">
<input type="submit" name="verwijderen" value="$idknop" />
</form>
EOD;
}
}
else
echo "<p>Er zijn nog geen gastenboek berichten toegevoegd.</p>";
}
?>
$mysql_user = "";
$mysql_pass = "";
$mysql_host = "localhost";
$mysql_dbn = "gastenboek";
if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
echo "database connectie mislukt!";
exit();
}
elseif (isset ($_POST["verwijderen"]))
{
echo "gelukt, waarde: ". $_POST["verwijderen"];
}
else
{
echo "<h1>Gastenboek</h1>";
echo "<p>Voeg een <a href=\"" . $_SERVER['PHP_SELF'] . "?show=add\">nieuw bericht</a> toe aan het gastenboek.</p>";
$sql = "SELECT id,naam,email,bericht,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM reunisten_gastenboek ORDER BY datum DESC";
$res = mysql_query($sql);
$srv = $_SERVER['PHP_SELF'];
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
$row['email'] = htmlentities($row['email']);
$row['naam'] = nl2br(htmlentities($row['naam']));
$row['bericht'] = nl2br(htmlentities($row['bericht']));
$row['id'] = nl2br(htmlentities($row['id']));
echo "<p><fieldset><a href=\"mailto:" . $row['email'] . "\">" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>: <br />";
echo $row['bericht'] . "</fieldset></p>";
$idknop = $row['id'];
echo <<<EOD
<form action="$srv" method="post">
<input type="submit" name="verwijderen" value="$idknop" />
</form>
EOD;
}
}
else
echo "<p>Er zijn nog geen gastenboek berichten toegevoegd.</p>";
}
?>
Eric
Gewijzigd op 01/01/1970 01:00:00 door Eric
je code word dus zo
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
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
<?php
$mysql_user = "";
$mysql_pass = "";
$mysql_host = "localhost";
$mysql_dbn = "gastenboek";
if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
echo "database connectie mislukt!";
exit();
}
elseif (isset ($_POST["verwijderen"]))
{
echo "gelukt, waarde: ". $_POST["verwijderen"];
}
else
{
echo "<h1>Gastenboek</h1>";
echo "<p>Voeg een <a href=\"" . $_SERVER['PHP_SELF'] . "?show=add\">nieuw bericht</a> toe aan het gastenboek.</p>";
$sql = "SELECT id,naam,email,bericht,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM reunisten_gastenboek ORDER BY datum DESC";
$res = mysql_query($sql);
$srv = $_SERVER['PHP_SELF'];
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
$row['email'] = htmlentities($row['email']);
$row['naam'] = nl2br(htmlentities($row['naam']));
$row['bericht'] = nl2br(htmlentities($row['bericht']));
$row['id'] = nl2br(htmlentities($row['id']));
echo "<p><fieldset><a href=\"mailto:" . $row['email'] . "\">" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>: <br />";
echo $row['bericht'] . "</fieldset></p>";
$idknop = $row['id'];
echo <<<EOD
<form action="$srv" method="post">
<input type="submit" name="verwijderen" value="$idknop" />
</form>
EOD;
}
}
}
else {
echo "<p>Er zijn nog geen gastenboek berichten toegevoegd.</p>";
}
?>
$mysql_user = "";
$mysql_pass = "";
$mysql_host = "localhost";
$mysql_dbn = "gastenboek";
if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
echo "database connectie mislukt!";
exit();
}
elseif (isset ($_POST["verwijderen"]))
{
echo "gelukt, waarde: ". $_POST["verwijderen"];
}
else
{
echo "<h1>Gastenboek</h1>";
echo "<p>Voeg een <a href=\"" . $_SERVER['PHP_SELF'] . "?show=add\">nieuw bericht</a> toe aan het gastenboek.</p>";
$sql = "SELECT id,naam,email,bericht,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM reunisten_gastenboek ORDER BY datum DESC";
$res = mysql_query($sql);
$srv = $_SERVER['PHP_SELF'];
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
$row['email'] = htmlentities($row['email']);
$row['naam'] = nl2br(htmlentities($row['naam']));
$row['bericht'] = nl2br(htmlentities($row['bericht']));
$row['id'] = nl2br(htmlentities($row['id']));
echo "<p><fieldset><a href=\"mailto:" . $row['email'] . "\">" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>: <br />";
echo $row['bericht'] . "</fieldset></p>";
$idknop = $row['id'];
echo <<<EOD
<form action="$srv" method="post">
<input type="submit" name="verwijderen" value="$idknop" />
</form>
EOD;
}
}
}
else {
echo "<p>Er zijn nog geen gastenboek berichten toegevoegd.</p>";
}
?>
edit:
zie ook dat de else niet geopent werd.
Edit:
Volgens mij heb je een esle te veel :$ want de kleuren kloppen niet :$
Volgens mij heb je een esle te veel :$ want de kleuren kloppen niet :$
Gewijzigd op 01/01/1970 01:00:00 door joren vh
Maarrrr...nog steeds dezelfde error..
En volgensmij kloppen alle if elseif en else dingen wel...waar volgens jou niet dan??
Zie niets meer mis. Kan je niet meer verder helpen. Sorry !
Code (php)
1
2
3
2
3
echo '<form action="'.$srv.'" method="post">
<input type="submit" name="verwijderen" value="'.$idknop.'" />
</form>';
<input type="submit" name="verwijderen" value="'.$idknop.'" />
</form>';
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
Je opent die laatste else dan toch niet !!!!!
Een else hóéft niet geopend te worden met een accolade. Het is wel netter en overzichtelijker om het te doen, maar het is niet verplicht.
Ow dat wist ik niet, excuus !
Dat geldt overigens voor alle statements, maar dat levert nogal eens fouten op. Je kunt ze dus beter gewoon plaatsen.
2 vraagjes dan...
Op de knop komt nu het nummer van het bericht. Logisch, maar eigenlijk wil ik op elke knop de tekst 'verwijderen' maar dan wel aan elke knop een aparte $idknop. Hoe doe ik dit?
Ook probeer ik nu de query uit te laten voeren, en heb ik bovenin (waar de code staat die hij uit moet voeren als er geklikt is) de volgende code geplaatst:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$sql = "REMOVE FROM 'reunisten_gastenboek' WHERE 'id' = '$idknop'";
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");
?>
$sql = "REMOVE FROM 'reunisten_gastenboek' WHERE 'id' = '$idknop'";
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");
?>
Hij voert echter nu de query niet uit, of er gaat in ieder geval iets mis, want hij geeft 'fout bij uitvoeren query'.
Het zal wel iets simpels zijn, maar ik ben nog niet zo'n expert op php-gebied.
$sql = "DELETE FROM reunisten_gastenboek WHERE id = '".$idknop."'";
Hier dan nog mijn gehele code tot nu toe:
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
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
<?php
$mysql_user = "";
$mysql_pass = "";
$mysql_host = "localhost";
$mysql_dbn = "gastenboek";
if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
echo "database connectie mislukt!";
exit();
}
elseif (isset ($_POST["verwijderen"]))
{
$sql = "DELETE FROM reunisten_gastenboek WHERE id = '" . $idknop . "'";
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");
$res = mysql_query($sql);
if (!empty($res))
{
echo "<h1>Bericht verwijderd</h1>";
echo "<p>Het bericht is verwijderd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.";
}
}
else
{
echo "<h1>Gastenboek beheer</h1>";
$sql = "SELECT id,naam,email,bericht,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM reunisten_gastenboek ORDER BY datum DESC";
$res = mysql_query($sql);
$srv = $_SERVER['PHP_SELF'];
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
$row['email'] = htmlentities($row['email']);
$row['naam'] = nl2br(htmlentities($row['naam']));
$row['bericht'] = nl2br(htmlentities($row['bericht']));
$row['id'] = nl2br(htmlentities($row['id']));
echo "<p><fieldset><a href=\"mailto:" . $row['email'] . "\">" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>: <br />";
echo $row['bericht'] . "</fieldset></p>";
$idknop = $row['id'];
echo '<form action="'.$srv.'" method="post">
<input type="submit" name="verwijderen" value="'.$idknop.'" />
</form>';
}
}
else
{
echo "<p>Er zijn nog geen gastenboek berichten toegevoegd.</p>";
}
}
?>
$mysql_user = "";
$mysql_pass = "";
$mysql_host = "localhost";
$mysql_dbn = "gastenboek";
if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
echo "database connectie mislukt!";
exit();
}
elseif (isset ($_POST["verwijderen"]))
{
$sql = "DELETE FROM reunisten_gastenboek WHERE id = '" . $idknop . "'";
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");
$res = mysql_query($sql);
if (!empty($res))
{
echo "<h1>Bericht verwijderd</h1>";
echo "<p>Het bericht is verwijderd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.";
}
}
else
{
echo "<h1>Gastenboek beheer</h1>";
$sql = "SELECT id,naam,email,bericht,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM reunisten_gastenboek ORDER BY datum DESC";
$res = mysql_query($sql);
$srv = $_SERVER['PHP_SELF'];
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
$row['email'] = htmlentities($row['email']);
$row['naam'] = nl2br(htmlentities($row['naam']));
$row['bericht'] = nl2br(htmlentities($row['bericht']));
$row['id'] = nl2br(htmlentities($row['id']));
echo "<p><fieldset><a href=\"mailto:" . $row['email'] . "\">" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>: <br />";
echo $row['bericht'] . "</fieldset></p>";
$idknop = $row['id'];
echo '<form action="'.$srv.'" method="post">
<input type="submit" name="verwijderen" value="'.$idknop.'" />
</form>';
}
}
else
{
echo "<p>Er zijn nog geen gastenboek berichten toegevoegd.</p>";
}
}
?>
Code:
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
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
<?php
$mysql_user = "";
$mysql_pass = "";
$mysql_host = "localhost";
$mysql_dbn = "jbw_nieuw";
if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
echo "database connectie mislukt!";
exit();
}
elseif (isset ($_POST["verwijderen"]))
{
$sql = "DELETE FROM jbw_gastenboek WHERE id = '" . $idknop . "'";
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");
$res = mysql_query($sql);
if (!empty($res))
{
echo "<h1>Bericht verwijderd</h1>";
echo "<p>Het bericht is verwijderd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.";
}
}
else
{
echo "<h1>Gastenboek beheer</h1>";
$sql = "SELECT id,naam,email,bericht,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM jbw_gastenboek ORDER BY datum DESC";
$res = mysql_query($sql);
$srv = $_SERVER['PHP_SELF'];
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
$row['email'] = htmlentities($row['email']);
$row['naam'] = nl2br(htmlentities($row['naam']));
$row['bericht'] = nl2br(htmlentities($row['bericht']));
$row['id'] = nl2br(htmlentities($row['id']));
echo "<p><fieldset><a href=\"mailto:" . $row['email'] . "\">" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>: <br />";
echo $row['bericht'] . "</fieldset></p>";
$idknop = $row['id'];
echo '<form action="'.$srv.'" method="post">
<input type="submit" name="verwijderen" value="'.$idknop.'" />
</form>';
}
}
else
{
echo "<p>Er zijn nog geen gastenboek berichten toegevoegd.</p>";
}
}
?>
$mysql_user = "";
$mysql_pass = "";
$mysql_host = "localhost";
$mysql_dbn = "jbw_nieuw";
if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
echo "database connectie mislukt!";
exit();
}
elseif (isset ($_POST["verwijderen"]))
{
$sql = "DELETE FROM jbw_gastenboek WHERE id = '" . $idknop . "'";
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");
$res = mysql_query($sql);
if (!empty($res))
{
echo "<h1>Bericht verwijderd</h1>";
echo "<p>Het bericht is verwijderd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.";
}
}
else
{
echo "<h1>Gastenboek beheer</h1>";
$sql = "SELECT id,naam,email,bericht,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM jbw_gastenboek ORDER BY datum DESC";
$res = mysql_query($sql);
$srv = $_SERVER['PHP_SELF'];
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
$row['email'] = htmlentities($row['email']);
$row['naam'] = nl2br(htmlentities($row['naam']));
$row['bericht'] = nl2br(htmlentities($row['bericht']));
$row['id'] = nl2br(htmlentities($row['id']));
echo "<p><fieldset><a href=\"mailto:" . $row['email'] . "\">" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>: <br />";
echo $row['bericht'] . "</fieldset></p>";
$idknop = $row['id'];
echo '<form action="'.$srv.'" method="post">
<input type="submit" name="verwijderen" value="'.$idknop.'" />
</form>';
}
}
else
{
echo "<p>Er zijn nog geen gastenboek berichten toegevoegd.</p>";
}
}
?>
Ik hoop dat iemand kan helpen!
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");
$res = mysql_query($sql);
waarom voer je de query 2x uit?
En een delete query kan niet vol of leeg terug komen, je moet het dus checken met mysql_affected_rows()
Gewijzigd op 01/01/1970 01:00:00 door jimmy Arts
ziet er netjes uit, maar ik heb hetzelfde probleem:S
jimmy schreef op 12.02.2008 21:45:
$sql = "DELETE FROM jbw_gastenboek WHERE id = '" . $idknop . "'";
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");
$res = mysql_query($sql);
waarom voer je de query 2x uit?
En een delete query kan niet vol of leeg terug komen, je moet het dus checken met mysql_affected_rows()
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");
$res = mysql_query($sql);
waarom voer je de query 2x uit?
En een delete query kan niet vol of leeg terug komen, je moet het dus checken met mysql_affected_rows()
En hoe zou dat stukje er dan uit moeten zien??? (ken de affected_rows term niet...)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
elseif (isset ($_POST["verwijderen"]))
{
$sql = "DELETE FROM reunisten_gastenboek WHERE id = '" . $idknop . "'";
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");
$check = mysql_affected_rows($result);
if ($check != 0)
{
echo "<h1>Bericht verwijderd</h1>";
echo "<p>Het bericht is verwijderd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.";
}
}
{
$sql = "DELETE FROM reunisten_gastenboek WHERE id = '" . $idknop . "'";
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");
$check = mysql_affected_rows($result);
if ($check != 0)
{
echo "<h1>Bericht verwijderd</h1>";
echo "<p>Het bericht is verwijderd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.";
}
}
Probeer dat eens
Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in ....
(met een verwijzing naar de regel $check = mysql_affected_rows($result);
(de database naam stond nog verkeerd, maar dat kan het nu ook niet meer zijn...)
mysql_affected_rows gewoon zonder argument aanroepen.
Als ik dat doe krijg ik na het indrukken van een verwijderknop een leeg scherm, en staat het bericht nog steeds in de db...
Weet je zeker dat er iets in $idknop komt te staan?