HILFE bitte - neueintragung in mysql table??
berni
- php
hi @ all:
eine grosse bitte hätt ich, gleichzeitig sicher eine ungewöhnliche (weil das einfach nicht wahr sein darf).
also:
ich hab da ein cms gemacht, grundsätzlich funzt alles, aber nicht die eintragung in das neue tabellen"segment", das eintragungs - script schaut derzeit so aus:
create_entry_log2.php:
<? include ("connect.php");
require ("update_neu.php?>
<?$id = $_GET['id'];
$inhalt = $_POST['inhalt'];
if ($submit="Subscribe")
{
$query = "insert inhalt into hp where ID='$id'"
;
mysql_query($query);
?>
da tut sich nix, ich hab zwar einen testeintrag per phpmyadmin gemacht, aber der ändert sich nicht, ich weiss schlicht nicht weiter.
die update_neu.php dient dazu alten content in der ID abzulöschen und die obige datei, soll den neuen seitencontent eintragen, aber wie gsagt, es erfolgt kein eintrag?
wieso nicht??!
ich hab auch schon andere eintragungssyntax probiert
z.B.:
$query = "insert into hp"
." (inhalt,id) values "
."('$inhalt', '$id')"
;
>>> nix
Hi,
ich weiß nicht ob das hilft, aber es sind ein paar Fehler im Srcipt:
if ($submit="Subscribe")
{
$query = "insert inhalt into hp where ID='$id'"
;
Ich weiß nicht genau, aber muss derStrichpunkt nicht immer am Ende der Zeile sein?
mysql_query($query);
?>
Irgendwo muss hier doch noch die Klammer vom if zugehen!
z.B.:
$query = "insert into hp"
." (inhalt,id) values "
."('$inhalt', '$id')"
;
s.o.
Tu das mal alles in eine Zeile, so:
$query = "insert into hp (inhalt,id) values ('$inhalt', '$id')";
Andy
Moin!
Tu das mal alles in eine Zeile, so:
$query = "insert into hp (inhalt,id) values ('$inhalt', '$id')";
Das ist eine gute Idee. Eine andere ist die folgende Art, dies zu notieren:
$query = "
INSERT INTO
hp
SET
inhalt = '$inhalt',
id = '$id'
";
Ich persönlich finde die Update- ähnliche Notation etwas übersichtlicher und die Zeilenumbrüche schaden ja nicht...
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Auch Moin!
$query = "
INSERT INTO
hp
SET
inhalt = '$inhalt',
id = '$id'
";
Insert und Set in einem Befehl? Was soll da passieren?
Andy
Auch Moin!
$query = "
INSERT INTO
hp
SET
inhalt = '$inhalt',
id = '$id'
";Insert und Set in einem Befehl? Was soll da passieren?
Andy
Andy bitte jetzt sagt der blödel das:
Parse error: parse error, unexpected T_STRING in /home/www/web56/html/create_entry_log2.php on line 5
line 5 ist aber (wie oben bereits gepostet) ein tag im head und hat mit php nix zu tun!
Hallo berni!
Andy bitte jetzt sagt der blödel das:
Der "blödel" weiß zwar auch nicht, was er tut, aber wenigstens hat er auch nicht die Möglichkeit sich selbst etwas anzueignen ...
Parse error: parse error, unexpected T_STRING in /home/www/web56/html/create_entry_log2.php on line 5
Vermutlich ist irgendwas bei dir kaputt (also an Deinem Script).
Schau Dir mal insbesondere die Zeilen 4-6 an.
MfG
Götz
-- Losung und Lehrtext für Samstag, 3. Januar 2004
Er wird herrlich werden, so weit die Welt ist. (Micha 5,3)
Er ist offenbart im Fleisch, gerechtfertigt im Geist, erschienen den Engeln, gepredigt den Heiden, geglaubt in der Welt, aufgenommen in die Herrlichkeit. (1.Timotheus 3,16)
(http://www.losungen.de/heute.php3)
Moin!
Du musst in Zeile 5 (und vorherige) von: create_entry_log2.php nachschauen.
_Häufigste_ Ursachen der genannten Fehlermeldung:
Vergessene ";" (Vorher)
Vergessen "?>" "PHP Modus" beenden
Vergessen "$" vor Variablenname.
Wenn Du es nicht findest, poste die ersten 5 Zeile des Skriptes hier im Original, ändere aber Passwörter und Benutzernamen, soweit enthalten.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
Du musst in Zeile 5 (und vorherige) von: create_entry_log2.php nachschauen.
_Häufigste_ Ursachen der genannten Fehlermeldung:
Vergessene ";" (Vorher)
Vergessen "?>" "PHP Modus" beenden
Vergessen "$" vor Variablenname.Wenn Du es nicht findest, poste die ersten 5 Zeile des Skriptes hier im Original, ändere aber Passwörter und Benutzernamen, soweit enthalten.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hallo fastix!
Du hattest recht, ich hatte eine menge von dem vergessen, was da bei dir stand, aber wenn ich auch jetzt keinen parse-error bekomme, der von mir gemachte testeintrag in 'inhalt' wird nicht geändert.
wieso das nicht?
Moin!
Du musst in Zeile 5 (und vorherige) von: create_entry_log2.php nachschauen.
_Häufigste_ Ursachen der genannten Fehlermeldung:
Vergessene ";" (Vorher)
Vergessen "?>" "PHP Modus" beenden
Vergessen "$" vor Variablenname.Wenn Du es nicht findest, poste die ersten 5 Zeile des Skriptes hier im Original, ändere aber Passwörter und Benutzernamen, soweit enthalten.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hallo fastix!
Du hattest recht, ich hatte eine menge von dem vergessen, was da bei dir stand, aber wenn ich auch jetzt keinen parse-error bekomme, der von mir gemachte testeintrag in 'inhalt' wird nicht geändert.
wieso das nicht?
... ich poste mal das ganze script:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<? include ("connect.php");
require ("update_neu.php");?>
</head>
<body bgcolor="#546A9C"><font face="Verdana" color="#800000" size="2">
<?$id = $_GET['id'];
$inhalt = $_POST['inhalt'];
if ($submit="Subscribe")
{
$query = "
INSERT INTO
hp
SET
inhalt = '$inhalt',
id = '$id'
";
?>
<p><font color="#ffffff" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Neue SEITE ist online - Gratulation!</strong></font></p>
<p> </p>
<br>
<?
}
else
{
include("sign.php");
}
?>
</p><br><br><br><br><a href="frame.php?id=<?print $id; ?>">Zur neuen Seite</a>
</body>
</html>
Hallo berni!
[viel überflüssiges Zeugs]
Warum läßt Du Dir dann nicht endlich mal den Fehler, den der MySQL-Server zurückgibt ausgeben?
MfG
Götz
Hallo berni!
[viel überflüssiges Zeugs]
Warum läßt Du Dir dann nicht endlich mal den Fehler, den der MySQL-Server zurückgibt ausgeben?
MfG
Götz
===>> weil er jetzt mehr keine fehler ausgibt, sondern nur nix tut.
@fastix:
ja di ID ist fix und der inhalt soll immer geändert werden - du hast es offenbar durchschaut - ich probier das gleich mal aus.
liebe grüße
berni
Moin!
ja di ID ist fix und der inhalt soll immer geändert werden - du hast es offenbar durchschaut - ich probier das gleich mal aus.
Ja. Und ändere:
mysql_query($query);
in:
mysql_query($query) OR die ("<hr>".mysql_error()."<hr>".$query."<hr>");
Dann bekommst die Fehlermeldung, die MySQL augibt, wenn es nicht so will, wie Du.
http://de2.php.net/manual/de/function.mysql-error.php
Dies solltest Du immer vornehmen!
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
ja di ID ist fix und der inhalt soll immer geändert werden - du hast es offenbar durchschaut - ich probier das gleich mal aus.
Ja. Und ändere:
mysql_query($query);
in:
mysql_query($query) OR die ("<hr>".mysql_error()."<hr>".$query."<hr>");
Dann bekommst die Fehlermeldung, die MySQL augibt, wenn es nicht so will, wie Du.
http://de2.php.net/manual/de/function.mysql-error.phpDies solltest Du immer vornehmen!
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
HURRA - danke fastix und andere, die sich rengekniet haben, jetzt klappt's!
danke - eine woche tu ich schon herum mit diesem sch... - jetzt geht's; ich kann's kaum glauben.
Moin!
ja di ID ist fix und der inhalt soll immer geändert werden - du hast es offenbar durchschaut - ich probier das gleich mal aus.
Ja. Und ändere:
mysql_query($query);
in:
mysql_query($query) OR die ("<hr>".mysql_error()."<hr>".$query."<hr>");
Dann bekommst die Fehlermeldung, die MySQL augibt, wenn es nicht so will, wie Du.
http://de2.php.net/manual/de/function.mysql-error.phpDies solltest Du immer vornehmen!
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
danke (habs oben schon gepostet) jetzt klapts.
Moin!
wieso das nicht?
Gute Frage.
Frage an Dich:
Existiert die Zeile mit der id eigentlich schon? Ist diese eventell "unique" (einzigartig). Dann kann das nicht gehen. Wenn (Falls) Du eine bestehende Zeile in der Tabelle ändern willst brauchts Du die Update- Sytnax.
$query="
UPDATE
tabelle
SET
inhalt = '$inhalt'
WHERE
id = '$id'
";
Du kannst Dir auch nach Durchführung der Operation die Rückgabe von: mysql_affected_rows() ausgeben lassen. Dies sollte 1 sein, wenn Du 1 Zeile änderst.
Lies hier http://de2.php.net/manual/de/ref.mysql.php
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
wieso das nicht?
Gute Frage.Frage an Dich:
Existiert die Zeile mit der id eigentlich schon? Ist diese eventell "unique" (einzigartig). Dann kann das nicht gehen. Wenn (Falls) Du eine bestehende Zeile in der Tabelle ändern willst brauchts Du die Update- Sytnax.
$query="
UPDATE
tabelle
SET
inhalt = '$inhalt'
WHERE
id = '$id'
";Du kannst Dir auch nach Durchführung der Operation die Rückgabe von: mysql_affected_rows() ausgeben lassen. Dies sollte 1 sein, wenn Du 1 Zeile änderst.
Lies hier http://de2.php.net/manual/de/ref.mysql.php
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
===>> danke für den tipp: hab ihn sofort wie folgt ausprobiert:
<?$id = $_GET['id'];
$inhalt = $_POST['inhalt'];
if ($submit="Subscribe")
{
$query="
UPDATE
hp
SET
inhalt = '$inhalt'
WHERE
id = '$id'
";
?>
... leider ändert sich der testeintrag 'test 300'=inhalt auf der ID 300 nicht!
was ist da los?
Hallo Andy!
Insert und Set in einem Befehl? Was soll da passieren?
Das, was das ganze übersetzt heißt:
Füge ein und setze irgendetwas auf einen bestimmten Wert.
Im MySQL-Manual gibts 3 Möglichkeiten, wie man einen INSERT aufbauen kann ...
Lesetip: http://www.mysql.com/doc/en/INSERT.html
MfG
Götz
Moin!
Insert und Set in einem Befehl? Was soll da passieren?
Es wird eine neue Zeile in der Tabelle angelegt und diese mit Werten bestückt.
Also genau das gleiche, wie bei einer "normalen" insert- Syntax.
http://www.mysql.com/doc/de/HANDLER.html
(nach dem zweiten oder:
<zitat>
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tabelle
SET spalten_name=ausdruck, spalten_name=ausdruck, ...
</zitat>
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
Tu das mal alles in eine Zeile, so:
$query = "insert into hp (inhalt,id) values ('$inhalt', '$id')";
Das ist eine gute Idee. Eine andere ist die folgende Art, dies zu notieren:
$query = "
INSERT INTO
hp
SET
inhalt = '$inhalt',
id = '$id'
";Ich persönlich finde die Update- ähnliche Notation etwas übersichtlicher und die Zeilenumbrüche schaden ja nicht...
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hä?
Was soll das?
Andy
PS: Wie geht das überhaupt? Bei mir würde da gleich kommen, dass ich zu viele Zitierte Zeilen drin hab!
Moin!
Tu das mal alles in eine Zeile, so:
$query = "insert into hp (inhalt,id) values ('$inhalt', '$id')";
Das ist eine gute Idee. Eine andere ist die folgende Art, dies zu notieren:
$query = "
INSERT INTO
hp
SET
inhalt = '$inhalt',
id = '$id'
";Ich persönlich finde die Update- ähnliche Notation etwas übersichtlicher und die Zeilenumbrüche schaden ja nicht...
du has recht, die'{' wird nicht geschlossen, aber keine idee wo.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hallo berni!
[...] aber nicht die eintragung in das neue tabellen"segment"
Tabellensegment?
Also, eine Eintragung fügt einer Datenbank einen Datensatz zu, oder so ähnlich jedenfalls.
Im Allgemeinen könnte man sagen, man fügt einer Tabelle eine Zeile hinzu.
<?$id = $_GET['id'];
Wie wärs, wenn Du auch die übergebene id mal prüfst, ob der Wert zulässig ist?
$query = "insert inhalt into hp where ID='$id'"
da tut sich nix ...
... und das ist auch gut so.
Denn in einem INSERT-Statement hat ein WHERE eigentlich nichts verloren.
Lesetip: http://www.mysql.com/doc/en/INSERT.html
die update_neu.php dient dazu alten content in der ID abzulöschen und die obige datei, soll den neuen seitencontent eintragen, aber wie gsagt, es erfolgt kein eintrag?
wieso nicht??!
Weil Du keine ahnung hast? :)
Alte Datensätze aktualisiert man in MySQL normalerweise mit UPDATE.
Mit INSERT INTO legt man eigentlich nur neue Datensätze an.
ich hab auch schon andere eintragungssyntax probiert
$query = "insert into hp"
." (inhalt,id) values "
."('$inhalt', '$id')"
;
Ähm. Ich schreib das mal um:
"INSERT INTO hp
(inhalt,id)
values
('".$inhalt."', '".$id."');"
Das sollte korrekt funktionieren.
Laß Dir doch erstmal den abgesetzten Query (in Deinem Fall $query) als Text ausgeben, und den dazu gehörenden MySQL-Fehler, weil diese Fehler sind manchmal vielleicht ganz hilfreich, wenn man Fehler finden will ...
Ich hab leider noch nicht so ganz verstanden, ob du nun einfügen oder nur aktualisieren willst, ist aber auch nicht so wichtig.
Les einfach bissel im MySQL-Manual und auch im PHP-Manual nach und laß Dir alle Fehler ausgeben - nur so findest Du irgendwann Deine Fehler auch _selbst_ ;)
MfG
Götz