 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
17.01.2005, 20:07
|
#1
|
|
TP-Senior
Registriert seit: Dec 2004
Ort: Braunschweig
|
VERZWEIFELT!! Daten aus einer Tabelle bearbeiten
Ich habe 2 Stunden den Fehler in diesem Script gesucht !
PHP-Code:
<div align="center">
<?php
//DATENBANK VERBINDUNG HERSTELLEN
include("db_login.php");
//MENÜ EINFÜGEN
include("menue.html");
//DATENBANK AUSWÄHLEN
@mysql_select_db(nelson)
or die( mysql_error() );
echo("<font face=\"Verdana\" size=\"3\"> <p>Hier kannst Du neue News posten</font>");
?>
<!-- News_post Formular-->
<title>News bearbeiten</title>
<form name="n_hinzu" method="post" action="<?=$PHP_SELF?>">
<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Geben Sie hier
den Titel der News ein:</font><br/>
<font size="2"> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="newstitel" size="40" value="<?php echo $n_header; ?>">
<?php $n_header ?>
</font></font></p>
<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Geben Sie hier
die News ein:</font><br/>
<textarea name="newstext" rows="10" type="text" cols="50"><?php echo $n_text; ?></textarea>
</p>
<p> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Autor:</font><br/>
<input type="text" name="newsautor" size="30" value="<?php echo $n_autor; ?>">
</p>
<p>
<input type="submit" name="submit_news" value="Abschicken">
</p>
</form>
<?php
if($submit_news == "Abschicken") {
$sql = "UPDATE news SET NewsHeader=$newstitel,NewsText=$newstext,NewsDate=CURDATE(),NewsAutor=$newsautor WHERE ID=$n_id";
//RÜCKGABE: ERFOLG ODER NICHT
if(@mysql_query($sql)) {
echo("<font face=\"Verdana\" size=\"3\"> <p>Die News wurden geändert!</p> </font>");
}else {
echo("<font size=\"3\" face=\"Verdana\" color=\"FF0000\"><p>Fehler beim speichern:".mysql_error().".</p></font>");
}
}
?>
</div>
Das Script soll eigentlich eine Tabelle ersetzen Tut es aber leider nicht. Er gibt diesen Fehler:
Fehler beim speichern: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 'bal,NewsText=12,NewsDate=CURDATE(),NewsAutor=bla bla WHERE ID='.
Bitte helft mir ! 
__________________
 <A programmer is just a tool which converts coffeine into code> anonym
|
|
|
17.01.2005, 20:12
|
#2
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
|
PHP-Code:
//Naja, erlösen wir dich mal von deiner Qual
$sql = "UPDATE news SET NewsHeader = '".$newstitel."', NewsText = '".$newstext."', NewsDate = CURDATE() , NewsAutor = '".$newsautor."' WHERE ID = ".$n_id;
In der Annahme, dass $n_id existiert!
Anmerkung: Wenn du in einer Datenbank Text (Strings) speichern möchtest, musst du jene immer in Single Quotes schreiben 'neuer String' und nicht neuer String
__________________
Zwei Dinge sind Unbestreitbar:- In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
- Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
|
|
|
17.01.2005, 20:25
|
#3
|
|
TP-Senior
Registriert seit: Dec 2004
Ort: Braunschweig
|
Funktioniert leider immer noch nicht
Fehler:
Fehler beim speichern: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 1.
Alle Variablen exestieren !
Hab auch alles nochmal durchgetestet.
__________________
 <A programmer is just a tool which converts coffeine into code> anonym
|
|
|
17.01.2005, 20:46
|
#4
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
|
PHP-Code:
//Du wirst doch als ID nicht etwa auch ein Textfeld genommen haben, oder?
$sql = "UPDATE news SET NewsHeader = '".$newstitel."', NewsText = '".$newstext."', NewsDate = CURDATE(), NewsAutor = '".$newsautor."' WHERE ID = '".$n_id."'";
Notfalls, gib mal die Struktur der Tabelle!
__________________
Zwei Dinge sind Unbestreitbar:- In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
- Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
|
|
|
17.01.2005, 20:53
|
#5
|
|
TP-Supporter
Registriert seit: Apr 2001
|
Hi
ich bin ja jetzt kein Profi aber pack doch mal den Wert von n_id in ein hiddenfeld und schick dies mit ab. Ich glaube nämlich nicht, dass der Wert korrekt übergeben wird.
__________________
Liebe Grüße, die Judi!
|
|
|
17.01.2005, 21:32
|
#6
|
|
TP-Senior
Registriert seit: Dec 2004
Ort: Braunschweig
|
doch wird er habe ich mit echo getestet.
Die Tabelle
ID AUTO_INCREMENT
NewsText
NewsAutor
NewsDate
NewsHeader
geht immer noch nich aber jetzt bringt er keine Fehlermeldung mehr
__________________
 <A programmer is just a tool which converts coffeine into code> anonym
Geändert von nels0n (17.01.2005 um 21:49 Uhr).
|
|
|
17.01.2005, 21:51
|
#7
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
|
PHP-Code:
$sql = "UPDATE news SET NewsHeader = '".$newstitel."', NewsText = '".$newstext."', NewsDate = CURDATE(), NewsAutor = '".$newsautor."' WHERE ID = ".$n_id;
echo $sql;
Sende uns mal die Ausgabe bitte!
__________________
Zwei Dinge sind Unbestreitbar:- In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
- Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
|
|
|
17.01.2005, 22:05
|
#8
|
|
TP-Senior
Registriert seit: Dec 2004
Ort: Braunschweig
|
UPDATE news SET NewsHeader = '', NewsText = '', NewsDate = CURDATE(), NewsAutor = '' WHERE ID =
__________________
 <A programmer is just a tool which converts coffeine into code> anonym
|
|
|
17.01.2005, 22:07
|
#9
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
|
Naja, ist doch selbsterklärend, oder?
Keine der Variablen Funktioniert an dieser Stelle. Den Fehler produziert aber die fehlende $n_id!
Leider ist in deinem Code nicht ersichtlich, wo $n_id überhaupt herkommt, sonst hätt ich den Fehler kurz behoben!
__________________
Zwei Dinge sind Unbestreitbar:- In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
- Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
Geändert von Dennis The Menace (17.01.2005 um 22:10 Uhr).
|
|
|
17.01.2005, 22:11
|
#10
|
|
TP-Senior
Registriert seit: Dec 2004
Ort: Braunschweig
|
Aber wenn ich die $n_id mit echo ausgebe gibt er sie richtig aus.
__________________
 <A programmer is just a tool which converts coffeine into code> anonym
|
|
|
17.01.2005, 22:16
|
#11
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
|
[doppelpost]
__________________
Zwei Dinge sind Unbestreitbar:- In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
- Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
Geändert von Dennis The Menace (18.01.2005 um 01:41 Uhr).
|
|
|
17.01.2005, 22:19
|
#12
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
|
Das geht nicht - dann wäre sie ja im SQL Query drin 
Vielleicht gibt er sie an irgend einer anderen Stelle im Code aus - wenn du aber versuchst, die in der dortigen if Klammer beim $sql versuchst, mit echo auszugeben, wirst du sehen, dass dem nicht so ist!
Poste am besten mal den Kompletten Code, dann kann ich dir relativ schnell zweigen, wo der Fehler liegt. Generell sendest du n_id schon mal nicht im Formular mit ...
__________________
Zwei Dinge sind Unbestreitbar:- In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
- Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
|
|
|
17.01.2005, 22:20
|
#13
|
|
TP-Senior
Registriert seit: Dec 2004
Ort: Braunschweig
|
ok kapiert aber wie geht das dann ??
Das muss doch irgendwie gehen oder ??
Der code wo die zu bearbeitenden news ausgewählt wird
PHP-Code:
<title>News bearbeiten</title>
<div align="center">
<?php
//VERBINDEN MIT DATENBANK
include("db_login.php");
//EINBINDEN DES MENÜS
include("menue.html");
//AUSWÄHLEN EINER DATENBANK
@mysql_select_db("nelson")
or die( mysql_error() );
//AUSLESEN ALLER NEWS
$show_news = mysql_query("SELECT ID,NewsAutor,NewsText,NewsHeader,NewsDate FROM news")
or die ( mysql_error() );
//SPEICHERN DER DATEN IN VARIABLEN
while($row=mysql_fetch_array($show_news)) {
$n_autor=$row["NewsAutor"];
$n_text=$row["NewsText"];
$n_header=$row["NewsHeader"];
$n_date=$row["NewsDate"];
$n_id=$row["ID"];
//AUSGABE DER DATEN IN EINER TABELLE
echo("<p><font face=\"Verdana\" size=\"2\"><table border=\"1\" cellspacing=\"0\" align=\"center\" width=\"70%\">
<tr>
<td width=\"20\">
Datum: ".$n_date.
"</td>
<td>
".$n_header.
"</td>
<td rowspan=\"3\" width=\"10\">
<a href='ad_edit.php?n_header=$n_header&n_text=$n_text&n_autor=$n_autor&n_id=$n_id'>Bearbeiten</a>
</td>
</tr>
<tr>
<td colspan=\"2\">
".$n_text."
</td>
</tr>
<tr>
<td colspan=\"2\">
".$n_autor."
</td>
</tr>
</table></font></p>
");
}
?>
</div>
Code wo die von der ad_bearbeiten.php eingefügt wird, verändert werden kann und dann geuptdatet werden soll.
PHP-Code:
<div align="center">
<?php
//DATENBANK VERBINDUNG HERSTELLEN
include("db_login.php");
//MENÜ EINFÜGEN
include("menue.html");
//DATENBANK AUSWÄHLEN
@mysql_select_db(nelson)
or die( mysql_error() );
echo("<font face=\"Verdana\" size=\"3\"> <p>Hier kannst Du neue News posten</font>");
?>
<!-- News_post Formular-->
<title>News bearbeiten</title>
<form name="n_hinzu" method="post" action="<?=$PHP_SELF?>">
<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Geben Sie hier
den Titel der News ein:</font><br/>
<font size="2"> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="newstitel" size="40" value="<?php echo $n_header; ?>">
<?php $n_header ?>
</font></font></p>
<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Geben Sie hier
die News ein:</font><br/>
<textarea name="newstext" rows="10" type="text" cols="50"><?php echo $n_text; ?></textarea>
</p>
<p> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Autor:</font><br/>
<input type="text" name="newsautor" size="30" value="<?php echo $n_autor; ?>">
</p>
<p>
<input type="submit" name="submit_news" value="Abschicken">
</p>
</form>
<?php
if($submit_news == "Abschicken") {
//$sql = "UPDATE news SET NewsHeader=$newstitel,NewsText=$newstext,NewsDate=CURDATE(),NewsAutor=$newsautor WHERE ID=$n_id";
//$sql = "UPDATE news SET NewsHeader = '".$newstitel."', NewsText = '".$newstext."', NewsDate = CURDATE() , NewsAutor = '".$newsautor."' WHERE ID = ".$n_id;
$sql = "UPDATE news SET NewsHeader = '".$newstitel."', NewsText = '".$newstext."', NewsDate = CURDATE(), NewsAutor = '".$newsautor."' WHERE ID = '".$n_id."'";
//RÜCKGABE: ERFOLG ODER NICHT
if(@mysql_query($sql)) {
echo("<font face=\"Verdana\" size=\"3\"> <p>Die News wurden geändert!</p> </font>");
}else {
echo("<font size=\"3\" face=\"Verdana\" color=\"FF0000\"><p>Fehler beim speichern:".mysql_error().".</p></font>");
}
}
?>
</div>
__________________
 <A programmer is just a tool which converts coffeine into code> anonym
Geändert von nels0n (17.01.2005 um 22:26 Uhr).
|
|
|
17.01.2005, 22:23
|
#14
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
|
Du musst die n_id im Formular mit übergeben, wie hier schon genannt wurde, am besten per verstecktem Eingabefeld <input type="hidden" name="n_id" value="<?=$n_id?>" />
Und ganz zum Schluss bei $sql halt nicht $newstext schreiben, sondern $_POST["newstext"], bei $n_id dann $_POST["n_id"] usw. usw!
__________________
Zwei Dinge sind Unbestreitbar:- In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
- Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
|
|
|
18.01.2005, 00:12
|
#15
|
|
TP-Supporter
Registriert seit: Apr 2001
|
Zitat:
|
Zitat von nels0n
UPDATE news SET NewsHeader = '', NewsText = '', NewsDate = CURDATE(), NewsAutor = '' WHERE ID =
|
Huhu
Hier wird ja nix übergeben.
Ich z.B. bin in solchen Dingen immer hin- und hergerissen...
sind Register_globals jetzt on oder off.
Manchmal ist die Abfrage darauf einfach zu blöde. Bei mir sind sie off. Deswegen könnte solch ein Konstrukt wie hier gepostet auch nicht funzen bei mir.
Ich müsste erstmal alle Formularfelder in Variablen schreiben.
$NewsText = $_POST[NewsText];
__________________
Liebe Grüße, die Judi!
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
| | |