$eintrag=INSERT INTO `news`...Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
administrator
anweisung
aufruf
backen
date
daten
eintrag
ergebnis
fehler
folgende fehler
funktion
insert
nachfolgenden zeile
semikolon
signatur
speicher
tabelle
versuch
vorkommen
zeile
-
Mein Problem:
Die Daten werden zwar v?llig korrekt durch post verschickt, aber irgendwie bringe ich es nicht mehr zustande das ganze dann in die Tabelle in einer Datenbank abzulegen. K?nntet ihr mir helfen? Nach der if{}Anweisung zufolge wird alles so ausgef?hrt wie gew?nscht, jedoch nach einer Kontrolle in der Datenbank speichert es nix ab.
Ich sitze jetzt schon den ganzen Abend dran und jetzt reichts!
Ich check die Welt nicht mehr!Vieleicht ihr schon noch. Ich bin anscheinend nicht f?hig genug aus einem Formular Daten auszulesen und diese dann in einer Tabelle zu speichern! Es geht einfach ums verrecken nicht!
hier mal der Code von newseintrag.php:
<form action="newseintragen.php" method="post">
News:<textarea name="news" cols="50" rows="7"></textarea><br>
Signatur:<input type="text" name="signatur"><br>
<input type="submit" name="submit" value="News eintragen">
<input type="reset" name="l?schen" value="News l?schen"><hr>
</form>
<?php
include"connectdb.php";
$abfrage= "SELECT * FROM `news` ORDER BY `id` DESC";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$Datum= date("d.m.Y-",$row->datum);
$Datum2= date("G:i:s",$row->datum);
echo "<table align=\"center\">
<tr><td>$row->news</td></tr>
<tr><td>$Datum$Datum2,$row->signatur</td></tr></table>";
}
$verbindungbeenden = mysql_close($verbinden);
?>
hier der Code von newseintragen.php:
<?php
include "connectdb.php";
$news =$HTTP_POST_VARS["news"];
$signatur = $HTTP_POST_VARS["signatur"];
$timestamp = time("G:i");
$date = date("G:i:s, d.m.Y",$timestamp);
$sql ="INSERT INTO `news` ( `id` , `datum` , `news` , `signatur` )VALUES ('', '$timestmp', '$news', '$signatur');";
if ($sql==true)
{
echo "Der News Eintrag wurde erfolgreich vorgenommen";
print "$news<br>$signatur,$date<hr>";
}
else
{
echo "Der News-Eintrag konnte nicht vorgenommen werden.<br>Bitte versuchen sie es sp?ter noch einmals, und fals dies ?fters vorkommen sollte, benachrichtigen Sie bitte den Administrator dieser Seite.";
}
?>
<a href="newseintrag.php"><br><br><br>back</a>
die Tabelle sieht so aus:
id,int(6),unsigned,notnull,auto_increment,primarykey,
datum,int(11),unsigned,notnull,
news,text,null,
signatur,varchar(20),notnull
gut.... das w?rs. hoffentlich findet ihr den Hacken Danke schonmal im Vorraus,
Gruss,
freshpr!nce -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Folgende Fehler hast du in newseintragen.php:
Falsch:
$timestamp = time("G:i");
Richtig:
$timestamp = time();
Falsch:
$sql ="INSERT INTO `news` ( `id` , `datum` , `news` , `signatur` )VALUES ('', '$timestmp', '$news', '$signatur');";
Richtig:
$sql ="INSERT INTO `news` (`datum` , `news` , `signatur` )VALUES ($timestamp, '$news', '$signatur');";
(3 ?nderungen: kein Eintragen von id mehr, da auto_increment und Schreibfehler bei $timestamp und $timestamp ist kein String, daher Hochkommata entfernen)
Die Fehler solltest du aber eigentlich sehen, wenn du am Anfang deines Skriptes folgendes einf?gen w?rdest:
error_reporting(E_ALL);
Kannst du ja mal ausprobieren, bevor du die Fehler ab?nderst. -
ok, das mit dem $timestamp war ein versehen, wie gesagt ich hock schon den ganzen Abend dran und ?ndere fluchtartig den Code. trotzdem thnx.
Speichern tut er es trotzdem nicht ich versuchs jetzt mit error_reporting(E_ALL);
EDIT:
Habs jetzt gemacht, doch jetzt kommt folgende Fehlermeldung:
Notice: Undefined index: news in /home/webpages/lima-city/freshprince/html/newseintragen.php on line 4
Notice: Undefined index: signatur in /home/webpages/lima-city/freshprince/html/newseintragen.php on line 5
und der Code dazu auf newseintragen.php
<?php
error_reporting(E_ALL);
include "connectdb.php";
$news=$HTTP_POST_VARS["news"];
$signatur=$HTTP_POST_VARS["signatur"];
$timestamp = time("G:i");
$date = date("G:i:s, d.m.Y",$timestamp);
$sql ="INSERT INTO `news` (`datum` , `news` , `signatur` )VALUES ($timestamp, '$news', '$signatur');";
if ($sql==true)
{
echo "Der News Eintrag wurde erfolgreich vorgenommen";
print "$news<br>$signatur,$date<hr>";
}
else
{
echo "Der News-Eintrag konnte nicht vorgenommen werden.<br>Bitte versuchen sie es sp?ter noch einmals, und fals dies ?fters vorkommen sollte, benachrichtigen Sie bitte den Administrator dieser Seite.";
}
?>
<a href="newseintrag.php"><br><br><br>back</a>
Ich sehe da keinen Fehler in der 4 und/oder 5 Linie!?
-
Ich schon *g*
Falsch:
$news=$HTTP_POST_VARS["news"];
$signatur=$HTTP_POST_VARS["signatur"];
Richtig:
$news=$HTTP_POST_VARS['news'];
$signatur=$HTTP_POST_VARS['signatur'];
Und die Zeile mit dem Aufruf der Funktion time() hast du auch noch nicht korrigiert.
Habs jetzt ge?ndert, und es speichert immer noch nix>:(
Der Witz ist, dass es mit
$news=$HTTP_POST_VARS["news"];
auf anderen Seiten von mir auch geht, nur hier nicht
Jetzt wird zwar kein Fehler mehr angezeigt, aber es speichert immer noch nix -
Ist dir schon aufgefallen, dass du mit der nachfolgenden Zeile keine SQL-Abfrage machst, sondern nur die Abfrage in einer Variablen speicherst?
$sql ="INSERT INTO `news` (`datum` , `news` , `signatur` )VALUES ($timestamp, '$news', '$signatur');";
Da fehlt noch:
mysql_query($sql);
Ausserdem solltest du das Semikolon nach '$signatur') l?schen, weil das "regelwidrig" ist. Und die ganzen `s bei news, datum und signatur kannst du ebenfalls weglassen. Die werden in diesem Fall nicht gebraucht. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage