MYSQL Update funktioniert nicht

Schokoriegel

Mitglied
So habe in einem anderen Forum schon Hilfe gesucht, nur da konnte mir bei meinem Problem auch nicht weiter geholfen werden.
Und zwar habe ich mir ein Newssystem geschrieben, wo
Code:
id int(9)
name varchar(100)
datum varchar(100)
titel varchar(100)
text longtext
ip varchar(50)
einheit int(5) (noch nicht aktiv!) (
gespeichert werden. Das abspeichern und löschen funktioniert bereits.
Jetzt bin ich gerade bei der UPDATE Funktion angelangt, jedoch tut sich beim Script nichts. Es werden einfach keine Datensätze geändert.

Damit MYSQL weiß welcher Datensatz bearbeitet werden soll, übertrage ich die ID
PHP:
<a href="edit.php?id=$id"></a>
bekomme auch auch schon den passenden Inhalt dazu angezeigt.
Und jetzt noch der Quelltext zum editieren, der leider nichts ändert!
PHP:
<html>
<head>
<title>News Editieren:</title>
</head>
<body>
<form action="edit.php" name="news" method="post">
<br><br>
<p><strong>News Editieren: </strong></p>
<?php
include("includes/config_mysql.php");
include("includes/datenbank.php");

$abfrage = "SELECT * from news where id='$id'"; // SELECT Abfrage zur Ausgabe
$result = mysql_query($abfrage,$conn);
$row = mysql_fetch_array ($result); 

$id = $row["id"];
$name_entry = $row["name"];
$datum_entry = $row["datum"];
$titel_entry = $row["titel"];
$text_entry = $row["text"];
$ipadresse_entry = $row["ip"];
$datum_entry =
$text_entry=ereg_replace("\n","\n<br>",$text_entry); // Zeilenumbrüche werden mit ausgegeben

$ip_new=getenv("REMOTE_ADDR");
$datum_new=time();

echo <<<BCD

Titel: <input name="titel_new" type="text" value="$titel_entry" maxlength="25"><br>
<textarea name="text_new" cols="50" rows="10">$text_entry</textarea><br>
Autor: <input name="name_new" type="text" value="$name_entry " maxlength="25"><br>
<input type="submit" name="submit" value="Update">
</form>
BCD;

if (isset( $_POST['submit']))
{
    $updaten = "UPDATE news SET  name = '".$_POST ['name_new']."', datum = '".$_POST ['datum_new']."', titel = '".$_POST ['title_new']."',
    text = '".$_POST ['text_new']."',  ip = '".$_POST ['ip_new']."' WHERE id = '".$id."'";
    mysql_query($updaten)or die(mysql_error());
    header("Location: ausgabe.php");
}
mysql_free_result($result);
mysql_close($conn);
?>

</body>
</html>
 
Du musst im Formular noch die $id mit übergeben also statt

Code:
<form action="edit.php" name="news" method="post">

das verwenden:

Code:
<form action="edit.php?id=$id" name="news" method="post">

#edit

und die WHERE id = '".$id."' ist blödsinn, da reicht WHERE id = $id
 
Jetzt bekomme ich folgende Meldung:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2
 
Ich weiß jetzt nicht was du an deinem Script geändert hast, poste es bitte nocheinmal!
Du darfst nicht vergessen ind die Variable $id auch was reinzuschrieben.

Und zwar so:

PHP:
$id = $_GET['id'];
 
PHP:
<html>
<head>
<title>News Editieren:</title>
</head>
<body>
<form action="edit.php?id=$id" name="news" method="post"> 
<br><br>
<p><strong>News Editieren: </strong></p>
<?php
include("includes/config_mysql.php");
include("includes/datenbank.php");

$abfrage = "SELECT * from news where id='$id'"; // SELECT Abfrage zur Ausgabe
$result = mysql_query($abfrage,$conn);
$row = mysql_fetch_array ($result); 

$id = $row["id"];
$name_entry = $row["name"];
$datum_entry = $row["datum"];
$titel_entry = $row["titel"];
$text_entry = $row["text"];
$ipadresse_entry = $row["ip"];
$datum_entry =
$text_entry=ereg_replace("\n","\n<br>",$text_entry); // Zeilenumbrüche werden mit ausgegeben

$ip_new=getenv("REMOTE_ADDR");
$datum_new=time();

echo <<<BCD

Titel: <input name="titel_new" type="text" value="$titel_entry" maxlength="25"><br>
<textarea name="text_new" cols="50" rows="10">$text_entry</textarea><br>
Autor: <input name="name_new" type="text" value="$name_entry " maxlength="25"><br>
<input type="submit" name="submit" value="Update">
</form>
BCD;

if (isset( $_POST['submit']))
{
    $updaten = "UPDATE news SET  name = '".$_POST ['name_new']."', datum = '".$_POST ['datum_new']."', titel = '".$_POST ['title_new']."',
    text = '".$_POST ['text_new']."',  ip = '".$_POST ['ip_new']."' WHERE id = $id";
    mysql_query($updaten)or die(mysql_error());
    header("Location: ausgabe.php");
}
mysql_free_result($result);
mysql_close($conn);
?>

</body>
</html>
 
Wo ist nun das Problem?

PHP:
<html>
<head>
<title>News Editieren:</title>
</head>
<body>
<form action="edit.php?id=$_GET['id']" name="news" method="post"> 
<br><br>
<p><strong>News Editieren: </strong></p>
<?php
include("includes/config_mysql.php");
include("includes/datenbank.php");

$abfrage = "SELECT * from news where id='".$_GET['id']."'"; // SELECT Abfrage zur Ausgabe
$result = mysql_query($abfrage,$conn);
$row = mysql_fetch_array ($result); 

$id = $row["id"];
$name_entry = $row["name"];
$datum_entry = $row["datum"];
$titel_entry = $row["titel"];
$text_entry = $row["text"];
$ipadresse_entry = $row["ip"];
$datum_entry =
$text_entry=ereg_replace("\n","\n<br>",$text_entry); // Zeilenumbrüche werden mit ausgegeben

$ip_new=getenv("REMOTE_ADDR");
$datum_new=time();

echo <<<BCD

Titel: <input name="titel_new" type="text" value="$titel_entry" maxlength="25"><br>
<textarea name="text_new" cols="50" rows="10">$text_entry</textarea><br>
Autor: <input name="name_new" type="text" value="$name_entry " maxlength="25"><br>
<input type="submit" name="submit" value="Update">
</form>
BCD;

if (isset( $_POST['submit']))
{
    $updaten = "UPDATE news SET  name = '".$_POST ['name_new']."', datum = '".$_POST ['datum_new']."', titel = '".$_POST ['title_new']."',
    text = '".$_POST ['text_new']."',  ip = '".$_POST ['ip_new']."' WHERE id = ".$_GET['id']." LIMIT 1";
    mysql_query($updaten)or die(mysql_error());
    header("Location: ausgabe.php");
}
mysql_free_result($result);
mysql_close($conn);
?>

</body>
</html>

Müsste passen, hab jetzt leider kein Editor mit Syntaxhighlighting deswegen ist das alles etwas schwer zu sehen!
 
jetzt bekomme ich das hier:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[\'id\'] LIMIT 1' at line 2
 
PHP:
<html>
<head>
<title>News Editieren:</title>
</head>
<body>
<form action="edit.php?id=<?php $_GET['id'] ?>" name="news" method="post"> 
<br><br>
<p><strong>News Editieren: </strong></p>
<?php
include("includes/config_mysql.php");
include("includes/datenbank.php");

$abfrage = "SELECT * from news where id='".$_GET['id']."'"; // SELECT Abfrage zur Ausgabe
$result = mysql_query($abfrage,$conn);
$row = mysql_fetch_array ($result); 

$id = $row["id"];
$name_entry = $row["name"];
$datum_entry = $row["datum"];
$titel_entry = $row["titel"];
$text_entry = $row["text"];
$ipadresse_entry = $row["ip"];
$datum_entry =
$text_entry=ereg_replace("\n","\n<br>",$text_entry); // Zeilenumbrüche werden mit ausgegeben

$ip_new=getenv("REMOTE_ADDR");
$datum_new=time();

echo <<<BCD

Titel: <input name="titel_new" type="text" value="$titel_entry" maxlength="25"><br>
<textarea name="text_new" cols="50" rows="10">$text_entry</textarea><br>
Autor: <input name="name_new" type="text" value="$name_entry " maxlength="25"><br>
<input type="submit" name="submit" value="Update">
</form>
BCD;

if (isset( $_POST['submit']))
{
    $updaten = "UPDATE news SET  name = '".$_POST ['name_new']."', datum = '".$_POST ['datum_new']."', titel = '".$_POST ['title_new']."',
    text = '".$_POST ['text_new']."',  ip = '".$_POST ['ip_new']."' WHERE id = '".$_GET['id']."' LIMIT 1";
    mysql_query($updaten)or die(mysql_error());
    header("Location: ausgabe.php");
}
mysql_free_result($result);
mysql_close($conn);
?>

</body>
</html>

Sorry, mein Fehler!
 
Zuletzt bearbeitet:
Zurück