Abfrage will nicht funktionieren

Simps-O-Rama
Ich arbeite gerade an einem kleinen CMS für meine Website.
Seiten erstellen - funktioniert ohne Probleme
Ausgabe - funktioniert auch
Nur beim bearbeiten gibt's Probleme.
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:
   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Edit a content-item</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css">
</head><body>
<?
  $verbindung mysql_connect("xxx","xxx",xxx") or die
  ("Cannot connect to database");
  mysql_select_db("xxx") or die
  ("database doesnt exist");
  $content=$_POST['content'];
  $title=$_POST['title'];
  $id=$_POST['id'];
  
  if ( $title == "" ) {
   echo "<div class="error\">Please fill out all fields!</div>" ;
}
 elseif ( $content == "" ) {
   echo "<div class=\"error\">Please fill out all fields!</div>" ;
}
else {
  $abfrage "UPDATE contents Set id = $id, title = $title, content = $content WHERE ID = $id";
   echo "<div class=\"noerror\">Successfully updated the content-item</div>" ;
  $update mysql_query($abfrage);
}
  mysql_close($verbindung);
  ?>
  </body>
  </html>
  

Es kommt dann "Successfully updated the content-item", es kommt keine Fehlermeldung o.ä.. Der Datensatz wird jedoch nicht geändert - weiß jemand, woran's liegt?
[kamui]
Mach mal bei dem Query ein " or die(mysql_error()); " dahinter, dann wird dir der MySQL-Fehler ausgegeben, wenn es einer ist.

Würde außerdem den UPDATE-Befehl allgemein etwss ändern, etwa so:
php:
1:
2:
3:
$abfrage 'UPDATE contents SET "'.((is_numeric($id))?('id="'.$id.'", '):('')).'
title="'.addslashes($title).'", content="'.addslashes($content).'" WHERE id="'.$id.'"';
$update mysql_query($abfrage) or die(mysql_error());


Wenn du kein " addslashes() " machst und in dem String ein Anführungszeichen vorkommt, denkt er, es wäre vorbei und gibt dir Fehler aus ^y^

EDIT2:// Gerade in einem CMS, wo man oft solche Funktionen verwendet, würde ich Klassen / Funktionen empfehlen, dann musst du bei einem kleinen Fehler nur eine Datei editieren und nicht alle smile
Simps-O-Rama
Vielen Dank schon mal.

Hm... Einen MySQL Error gibt es bei der ersten Version (leicht verändert) nicht, funktioniert trotzdem nicht unglücklich

Bei deinem kommt leider ein Fehler:
Zitat:
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 '" title="bla", conte
[kamui]
Habe ausversehen ein Anführungszeichen vor die If-Abfrage gesetzt ...

php:
1:
2:
3:
$abfrage 'UPDATE contents SET '.((is_numeric($id))?('id="'.$id.'", '):('')).'
title="'.addslashes($title).'", content="'.addslashes($content).'" WHERE id="'.$id.'"';
$update mysql_query($abfrage) or die(mysql_error());
Simps-O-Rama
Hm... Das seltsame ist: Es kommt kein Fehler, jedoch funktioniert es immer noch nicht.... verwirrt
Ghostmaster
code:
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:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Edit a content-item</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css">
</head><body>
<?php
  $verbindung = mysql_connect("xxx","xxx",xxx") or die
  ("Cannot connect to database");
  mysql_select_db("xxx") or die
  ("database doesnt exist");
  $content=$_POST['content'];
  $title=$_POST['title'];
  $id=$_POST['id'];
  
  if ($title == "") {
   echo "<div class=\"error\">Please fill out all fields!</div>" ;
}
 elseif ($content == "") {
   echo "<div class=\"error\">Please fill out all fields!</div>" ;
}
else {
  $abfrage = 'UPDATE contents SET '.((is_numeric($id))?('id="'.$id.'", '):('')).' title="'.addslashes($title).'", content="'.addslashes($content).'" WHERE id="'.$id.'"';
  $update = mysql_query($abfrage) or die(mysql_error()); 
}
  mysql_close($verbindung);
?>
</body>
</html>


Mal eine evtl. dumme Frage. Woher hollst du dir die Daten wie z.B. $title oder $content Augenzwinkern
Sehe in deinem Script nämlich keine Felder.
Simps-O-Rama
Kommt aus der vorigen Seite Augenzwinkern

Danke Ghost, aber leider funktioniert deins auch nicht unglücklich
[kamui]
Komisch ...

Was ich gerade noch sehe, du solltest anstatt " if ($title == "") { " lieber empty() verwenden.