Abfrage will nicht funktionieren |
|
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?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Simps-O-Rama: 04.12.06 21:31.
|
|
04.12.06 21:24 |
E-Mail
Finden
Als Freund hinzufügen
|
|
[kamui]
~
Dabei seit: 27.04.05
Beiträge: 2.992
|
|
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
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von [kamui]: 04.12.06 22:50.
|
|
04.12.06 22:42 |
Finden
Als Freund hinzufügen
|
|
Simps-O-Rama
Mitglied
Dabei seit: 19.06.04
Beiträge: 3.165
Themenstarter
|
|
Vielen Dank schon mal.
Hm... Einen MySQL Error gibt es bei der ersten Version (leicht verändert) nicht, funktioniert trotzdem nicht
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 |
|
|
05.12.06 13:16 |
E-Mail
Finden
Als Freund hinzufügen
|
|
[kamui]
~
Dabei seit: 27.04.05
Beiträge: 2.992
|
|
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()); |
|
|
|
05.12.06 16:15 |
Finden
Als Freund hinzufügen
|
|
Ghostmaster
Das Böse
Dabei seit: 17.01.04
Beiträge: 6.440
Fähigkeiten: WBB2 Profi Forenversion: 2.3
|
|
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
Sehe in deinem Script nämlich keine Felder.
|
|
05.12.06 17:36 |
Finden
Als Freund hinzufügen
|
|
|