Hm, ich wuerde mal versuchen die Werte zu quoten, wo es noetig ist.
Hm, ich wuerde mal versuchen die Werte zu quoten, wo es noetig ist.
Amilo D - 2,8 Ghz - ATI Radeon 9000
Debian GNU/Linux 3.1 (Sarge)
ausserdem solltest du dir die funktion addslashes() (oder so aehnlich) angucken, sonst hilft dir das quoten gar nix, wenn mal jemand ein " oder ' in seinem beitrag stehen hat.
siehe auch SQL-Injection
PS: die idee, fuer jeden neuen beitrag eine neue kommentartabelle anzulegen, ist, gelinde gesagt, ... aehm... schlecht. und sie steht im widerspruch zum relationalen datenmodell. wenn du z.b. einmal wissen willst, wieviel kommentare insgesamt abgegeben wurden, musst du jede einzelne tabelle abfragen. wenn du glueck hast, bremmst du dann nur deinen server aus, wenn du pech hast, passieren dinge, die ich mir nicht mal vorstellen moechte...
schreib lieber in die kommentar tabelle 'nen eintrag zu welchem newsbeitrag ein kommentar gehoeren soll. iss performanter, sicherer, einfacher, uebersichtlicher..........
Das finde ich allerdings auch.
Probier es mal mit
CREATE TABLE `news` (
`user_id` INT( 8 ) NOT NULL ,
`news_id` INT( 8 ) NOT NULL ,
`author` VARCHAR( 100 ) NOT NULL ,
`entry` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`news_text` TEXT NOT NULL ,
PRIMARY KEY ( `user_id` , `news_id` )
) TYPE = MYISAM ;
Mit dem kombinierten Schlüssel gibt es für jeden Benutzer eine Nachricht mit der ID 1, 2, u.s.w.
Bsp.:
mysql_query("INSERT INTO news (user_id, news_id, author, news_text) VALUES (1, 1, "ich", "Das ist mein Text");
mysql_query("INSERT INTO news (user_id, news_id, author, news_text) VALUES (1, 2, "ich2", "Das ist mein Text2");
mysql_query("INSERT INTO news (user_id, news_id, author, news_text) VALUES (2, 1, "ich3", "Das ist mein Text3");
.....
@Pingu
Ich kenne die Vor-und Nachteile von AutoIncrement-Feldern. In Verbindung mit max würde ich aus dem AutoIncrement-Feld auch ein normales int-Feld machen. War auch nur einer von mehreren Lösungswegen.
http://www.cplinux.de
.......... also ich versteh das net. Erklärt es mir bitte nicht im Fach chinesisch :P etwas einfacher^^
Ich hätte noch ein Problem. Wenn ich was eintragen will kommt folgendes :
Mein Code :Code: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 'der Titel, NOW(), der forz, Das is der Inhalt)' at line 4
Für mich sieht alles richtig aus heeellllppppCode:$sql = " INSERT INTO News (Titel, Datum, Author, Inhalt) VALUES (".$_POST['titel'].", NOW(), ".$_COOKIE['username'].", ".$_POST['inhalt'].")";
€: Was würde dann passieren?!? *angst hab*
Geändert von K0rnbr0t (23-09-2006 um 11:19 Uhr)
Dir Fehlen noch die Quotes (Anführungszeichen, Gänsefüsschen, etc) um die Variablen Werte in Deinem SQL Query String.
z.B.:
Strings müssen innerhalb von Quotes stehen und um das mit den addslashes zu Zeigen:PHP-Code:
('".$_POST['titel']."', NOW(), '".$_COOKIE['username']."',
dann musst Du beim ausgeben der Daten jedoch ein stripslashes() machen.PHP-Code:
('".addslashes($_POST['titel'])."', NOW(), '".addslashes($_COOKIE['username'])."',
Viele Grüße
Code: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 'forz, //$_COOKIE['username']=der forz dfsdf)' at line 4
Ich gebe Dir mal einen kleinen Hinweis:
Wenn eine MySQL-Fehlermeldung kommt, dann gibt diese immer an wo der Fehler verursacht wurde. Wenn Du nicht weisst, was der wirkliche Grund ist, dann musst Dir die Befehle, wie sie an die Datenbank gesendet werden, gnauso anzeigen lassen. Denn nur dann kann man erkennen, wie die Befehle aussehen und wie sie aussehen müssten. Wie Du sicherlich weisst, gibt es dafür verschiedene Möglichkeiten; die Klassiker sind "echo", "print" "printf". Das ganze nennt man "debuggen".
Homepage: www.pingu.info
Ahhhhh ok habs rausgefunden . Hätten da noch ein problem. WIe kann ich einen eintrag über die ID auswählen???
Vielleicht solltest Du ersteinmal ein kleines Handbuch durcharbeiten bevor Du weiter machst. Zum Beispiel gibt es hier ein kleines: http://little-idiot.de/mysql/
Homepage: www.pingu.info
Lesezeichen