"Update" funktionier nicht

Bradlay

Mitglied
Ich habe mit PHP und SQL ein Gästebuch erstellt.
Durch eine einfache änderung einer Zahl wird dabei festgelegt ob der Eintrag veröffentlicht oder gesperrt werden soll. Leider funtionier das Updaten nicht.


Code:
if($flag==2)
{
$tabellenname="gastbuch";
$sql="UPDATE $tabellenname SET check=1 WHERE ID=$ID";
$link=mysql_connect("localhost", "benutzername", "passwort");

mysql_select_db("datenbank", $link);

$result=mysql_query($sql, $link);
}
Die andere Abfrage, die schaut ob $flag==1 ist sollte check auf -1 setzten aber es passiert nichts.

Das löschen eines Eintrages, mit hilfe eines leicht abgwandelten scripts klappt hingegen wunderbar.

Wäre schön wenn mir jemand helfen könnte. Das Danke gibt es schon mal jetzt.
 
Zuletzt bearbeitet:
Erhältst du eine Fehlermeldung?
Ist check auch ein Integer-Feld?
Ist $ID richtig, oder sollte es $id heißen?
 
Ich sehe keine Fehlermeldung. Das Script ist so geschrieben, dass sich die Seit sofort aktuallisiert. Aber weder dort noch in der Datenbank selber geschehen irgendwelche änderungen.

check ist ein tinyint-Feld

$ID ist richtig.
 
Für die bessere Übersich stelle ich den kompletten Code mal rein:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?php

if($flag==1)	// Datensatz löschen
{
$tabellenname="gastbuch";
$sql=" DELETE FROM $tabellenname WHERE ID=$ID";
$link=mysql_connect("localhost", "benutzer", "passwort");
mysql_select_db("datenbank", $link);
$result=mysql_query($sql, $link);
}

if($flag==2) //Datensatz freigeben
{
$tabellenname="gastbuch";
$sql="UPDATE $tabellenname SET check=1 WHERE ID=$ID";
$link=mysql_connect("localhost", "benutzer", "passwort");

mysql_select_db("datenbank", $link);

$result=mysql_query($sql, $link);
}

if($flag==3) //Datensatz sperren
{
$tabellenname="gastbuch";
$sql="UPDATE $tabellenname SET check=-1 WHERE ID=$ID";
$link=mysql_connect("localhost", "benutzer", "passwort");

mysql_select_db("datenbank", $link);

$result=mysql_query($sql, $link);
}

// Einträge auslesen

$tabellenname="gastbuch";
$sql="SELECT * FROM $tabellenname ORDER BY datum DESC ";
$link=mysql_connect("localhost", "benutzer", "passwort");

mysql_select_db("datenbank", $link);

$result=mysql_query($sql, $link);

for($i=0;$i<mysql_num_rows($result);$i++)
{
$ergebnis[$i]=mysql_fetch_array($result);
}
?>

<html>
<head>
<title>G&auml;stebuch Bearbeiten</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>


<?php	// Eintrage Anzeigen
for($i=0;$i<count($ergebnis);$i++)
{

echo "<table border=1 width=400><tr><td> ".$ergebnis[$i][datum]." </td><td> ".$ergebnis[$i][absender]." </td><td> ".$ergebnis[$i][check]." </td></tr>";
echo "<tr><td colspan=3> ".$ergebnis[$i][betreff]."</td></tr>";
echo "<tr><td colspan=3> ".$ergebnis[$i][message]."</td></tr>";
echo "<tr><td><a href='".$PHP_SELF."?ID=".$ergebnis[$i][ID]."&flag=1'>Löschen</a></td> <td></td>";
if($ergebnis[$i][check]==-1) //ist check -1
{echo "<td><a href='".$PHP_SELF."?ID=".$ergebnis[$i][ID]."&flag=2'>Freischalten</a></td></tr></table>";}
else
{echo "<td><a href='".$PHP_SELF."?ID=".$ergebnis[$i][ID]."&flag=3'>Sperren</a></td></tr></table>";}
}
?>
</body>
</html>

if($flag==1) funktioniert
die andern beiden bedingungen nicht.
 
Zuletzt bearbeitet:
So hier habe ich doch noch die lösung für das Problem selber gefunden (Mit ein bisschen hilfe)

Code:
$sql = "UPDATE $tabellenname SET `check` = '1' WHERE `ID` = '$ID' LIMIT 1";

und 

$sql = "UPDATE $tabellenname SET `check` = '-1' WHERE `ID` = '$ID' LIMIT 1";

so funktionierts :p
 

Neue Beiträge

Zurück