MarkusS Geschrieben 16. Juni 2005 Teilen Geschrieben 16. Juni 2005 Hallo ich hab eine Datenbank für meine Videos angelegt mit folgendenden Spalten: ID, Nr, Film, Genre, Qualität, Datenträger, Sonstiges ID ist primary key und hat auto_increment beim eintragen benutze ich folgenden befehl: "INSERT INTO $tabelle (`Nr`,`Film`,`Genre...) VALUES ('$_POST[nr]','$_POST[film]','$_POST[genre]'...)"; jetzt ist das Problem, dass ich zwei verschiedene Videos auf die selbe Nr. eintragen kann, nur mit verschiedener ID halt. Wenn ich dann z.B. ein Eintrag löschen will mit dem befehl: "DELETE FROM $tabelle WHERE `Nr` = '$_POST[nr]'"; dann löscht er mir beide einträge. Dass diese fehleintragung erst nicht zu stande kommt meine frage, wie kann ich verhindern, bzw. eine Fehlermeldung ausgeben, wenn mann ein video auf die selbe nummer eintragen will? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Maulwurf_der_Schlaue Geschrieben 16. Juni 2005 Teilen Geschrieben 16. Juni 2005 ich würd das feld "nr" als unique deklarieren... problem gelöst du bist nicht gezuwungen einen fortlaufende nummer zu vergeben, der wert darf allerdings nur einmal vorkommen... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
adragon Geschrieben 16. Juni 2005 Teilen Geschrieben 16. Juni 2005 mach die nr als primärschlüssel... und lass die id weg.... einfachste möglichkeit Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Maulwurf_der_Schlaue Geschrieben 16. Juni 2005 Teilen Geschrieben 16. Juni 2005 stimmt beim zweiten lesen... id und nummer is ja irgendwie das selbe... also eins weglassen primärschlüssel machen... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MarkusS Geschrieben 16. Juni 2005 Autor Teilen Geschrieben 16. Juni 2005 danke erst mal stimmt beim zweiten lesen... id und nummer is ja irgendwie das selbe... also eins weglassen primärschlüssel machen... Alles klar das ist die Lösung... Nur wie kann ich das als schöne Fehlermeldung ausgeben (messagebox oder so) lassen und nicht SQLmäßig am boden vom Formular: Duplicate entry '1' for key 2 ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 16. Juni 2005 Teilen Geschrieben 16. Juni 2005 Dafür müssten wir wissen, welche/s Sprache/DBMS Du benutzt, und wie Du das SQL-Statement ausführst... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MarkusS Geschrieben 16. Juni 2005 Autor Teilen Geschrieben 16. Juni 2005 Dafür müssten wir wissen, welche/s Sprache/DBMS Du benutzt, und wie Du das SQL-Statement ausführst... Also ich benutz php und was meinst du damit "wie ich das SQL-Statement ausführe". Wenn du den Befehl meinst: If ($eintragen){ $sql = "INSERT INTO $tabelle (`Nr`...) VALUES ('$_POST[nr]'...)"; mysql_query($sql) or die(mysql_error()); } und per phpmyAdmin hab ich die `Nr` Spalte unique deklariert: ALTER TABLE `videoliste` ADD UNIQUE (`Nr`) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 16. Juni 2005 Teilen Geschrieben 16. Juni 2005 if (!mysql_query($sql)) { $errorMsg = mysql_error(); //Jetzt kannst Du mit $errorMsg alles machen, was Du willst, das Script bricht nicht mehr mit einer Fehlermeldung ab... } anstelle von: mysql_query($sql) or die(mysql_error()); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MarkusS Geschrieben 17. Juni 2005 Autor Teilen Geschrieben 17. Juni 2005 perfekt das passt, nur will ich jetzt per javascript ne msgbox ausgeben lassen, wenn eine Nr. schon vorhanden ist. ich hab das so probiert: $msgbox = "<SCRIPT LANGUAGE=\"JAVASCRIPT\">function MessageBox(){alert('Fehlermeldung halt'); }</SCRIPT>"; if (!mysql_query($sql)) { echo = $msgbox; } nur er gibt mir die msgbox nicht aus! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 17. Juni 2005 Teilen Geschrieben 17. Juni 2005 nur er gibt mir die msgbox nicht aus! Weil der Funktionsaufruf fehlt... Aber ruf doch die Alert-Methode direkt auf... $msgbox = "<SCRIPT LANGUAGE=\"JAVASCRIPT\">\n". " alert('Fehlermeldung halt');\n". "</SCRIPT>"; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MarkusS Geschrieben 20. Juni 2005 Autor Teilen Geschrieben 20. Juni 2005 alles klar funktioniert, danke. Das macht die Sache um einiges benutzerfreundlicher... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.