Einfügen in Datenbank will nicht mehr klappen? - Fehler?

Caralynn

Mitglied
Hallöchen,
ich bin's mal wieder mit einem mehr oder weniger großen Anfängerproblem mit einem selbstgebastelten, verwurschtelten Script.
Dieses Script sieht eigentlich vor, dass der User einen Kommentar zu einem Bild abgeben kann, allerdings funktioniert das eintragen offenbar nicht - ohne Fehlermeldung, wohlgemerkt.
Funktionsweise: Ich habe versucht die ids der Bilder (sind laufend in der db durchnummeriert) in der Url mitzugeben, sieht in etwa so im Brauser (hehe, heute in einer Zeitung gelesen, nette Schreibweise ;)) newcomment.php?action=new&id=[iddesbildes] aus.
Schön und gut, bisher hat das bei allen Seiten auch schon geklappt.
Die Tabelle comments besitzt eine Spalte id, in der eben diese id gespeichert werden soll, die da in der URL mitgeliefert wird; desweiteren eine Spalte namens name, text, date, cid ('commentid' mit auto_increment) und eine namens bewertung... aber das ist nebensächlich im moment.
Mein Problem ist wie gesagt, dass ich offenbar einen Fehler im Code habe, ihn aber einfach nicht finden kann und das seit etwa 2 Stunden (woas?)
Hier ist einmal ein Code-Fitzelchen, in dem - denke ich - der Fehler liegt... obwohl, wenn ich es mir jetzt anschaue - das ding war schon einmal länger. egal, vielleicht weiß trotzdem jemand weiter :(

PHP:
<? include("cookiecheck.php");
$dbconnect = mysql_connect("localhost", "", "");
                         mysql_select_db("");

                         if($submit)
	      { $sql = "INSERT INTO reviews (id, reviewer, text, bewertung, date)
VALUES ('$id', '$name', '$comment', '$bewertung', now())";
                           }
?>
<? include("headerpop.php");
//usw...

Ich denke mal, dass dieser Code falscher ist als der, den ich davor hatte, aber das Problem war das gleiche. Es erfolgte kein Eintrag in der Datenbank (auch mit $sql = "INSERT INTO comments SET name='$name', text='$comment'....usw")
Weiß echt nicht mehr, wo der Fehler liegen könnte :(
Ein wenig Hilfe wäre nett und verzeiht mir diesen Codewirrwarr, falls er in euren Augen total falsch ist ... in meiner Verzweiflung habe ich angefangen, alle möglichen Sachen zu probieren ^^;;

LG,
Caralynn
 
Zuletzt bearbeitet:
Original geschrieben von Caralynn
Hallöchen,
ich bin's mal wieder mit einem mehr oder weniger großen Anfängerproblem mit einem selbstgebastelten, verwurschtelten Script.
Dieses Script sieht eigentlich vor, dass der User einen Kommentar zu einem Bild abgeben kann, allerdings funktioniert das eintragen offenbar nicht - ohne Fehlermeldung, wohlgemerkt.
Also, ich denk mir mal, dass die Werte, die Du in die Datenbank einfügen möchtest, aus einem Formular kommen, oder? Also Du klickst auf den Link, und landest auf einem Formularm, richtig? Falls ja, dann würd ich erstmal die ID, die Du über die URL mitgibst, als Hidden-Field ins Formular packen:

PHP:
<input type="hidden" name="id" value="<? echo $_GET['id'];?>">
So, und dann der Datenbank eintrag:

PHP:
  $sql = 'INSERT INTO '.
                'reviews ('.
                    'id, '.
                    'reviewer, '.
                    'text, '.
                    'bewertung, '.
                    'date'.
            ') VALUES ('.
                '"'.$_POST['id'].'", '.
                '"'.$_POST['name'].'", '.
                '"'.$_POST['comment'].'", '.
                '"'.$_POST['bewertung'].'", '.
                'NOW())';
So, und damit der Eintrag jetzt auch wirklich in der Datenbank landet, musst Du ihn natürlich noch ausführen!

PHP:
mysql_query($sql);
Noch eine kleine Anmerkung: Du solltest NIEMALS Werte, die von außerhalb kommen direkt in die Datenbank schreiben. Also erst die Werte prüfen bzw. filtern lassen (es könnte z.b. ein User SQL-Injections in einen Wert eingebaut haben, und je nach Eingabe könnte diese Injection fatale Folgen für eine Daten haben).
 
Hui, danke für die schnelle Antwort, Chino, aber irgendwie scheint es immer noch nicht zu funktionieren :(
Aber ich glaube, das ist ein Fehler meinerseits *boeh* - kann ich dir vielleicht den gesamten Quellcode per Mail schicken und du schaust es dir mal an? :| - ist echt ein bizarres Konstrukt *g*
Die Idee mit dem Hidden-Feld hatte ich sogar auch schon und es war auch bereits 'eingefügt' und ja, es war ein Formular... mhm

LG,
Caralynn
 
Original geschrieben von Caralynn
Hui, danke für die schnelle Antwort, Chino, aber irgendwie scheint es immer noch nicht zu funktionieren :(
Aber ich glaube, das ist ein Fehler meinerseits *boeh* - kann ich dir vielleicht den gesamten Quellcode per Mail schicken und du schaust es dir mal an? :| - ist echt ein bizarres Konstrukt *g*
Die Idee mit dem Hidden-Feld hatte ich sogar auch schon und es war auch bereits 'eingefügt' und ja, es war ein Formular... mhm
Was genau geht denn nicht? Hast Du mal versucht, mittles mysql_error eine Fehlermeldung auszugeben wenn der Eintrag in die Datenbank nicht klappt? Versuch doch erstmal selbst auf die Lösung zu kommen, wenn Du dann immer noch nich weiter kommst, dann schau ich mir das gerne mal an!
 
Zurück