Ramiel Geschrieben 13. Februar 2009 Teilen Geschrieben 13. Februar 2009 So dann nerv ich euch mal wieder. also flgendes ich hab jetzt eine datenbank jokes mit den tabellen jokes wo die witze gespeichert werden mit id und aid. und eine tabelle authors in welcher die namen und email adressen der schreiber eingetragen sind, dann möchte ich in authors schreiber hinzufügen. INSERT INTO Authors (ID, Name, EMail) VALUES ("1","nam1","email1"), ("2","name2","email2") ; doch wenn ich das eingebe erhalte ich den error 1062 : duplicate entry 1 for key primary könnte mir vielleicht jemand helfen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 13. Februar 2009 Teilen Geschrieben 13. Februar 2009 Du möchtest einen PK einfügen, der bereits in der Tabelle existiert. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ramiel Geschrieben 14. Februar 2009 Autor Teilen Geschrieben 14. Februar 2009 gut hast recht danke! aber sobald ich jetzt die zwei tabellen in einer anzeigen will mit: select left(joketext,20), name, email from jokes, authors where aid = authors.id; erhalte ich die fehlermeldung: empty set was könnte das bedeuten? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 14. Februar 2009 Teilen Geschrieben 14. Februar 2009 erhalte ich die fehlermeldung: empty set was könnte das bedeuten? Na das was da steht: es wurden keine Zeilen gefunden, die auf deine Bedingung zutreffen. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ramiel Geschrieben 14. Februar 2009 Autor Teilen Geschrieben 14. Februar 2009 ja schon klar aber wieso sollte das kommen wenn ich alles richtig eingegeben habe ebenso die gros kleinschreibung? so kan ich es doch schreiben oder? denn. joketext und aid ist in jokes und name email und authors.id ist in authors Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ramiel Geschrieben 14. Februar 2009 Autor Teilen Geschrieben 14. Februar 2009 so also wenn ich den befehl: select left(joketext,20), name, email from jokes, authors; eingebe funktioniert es noch und ich bekomme eine tabelle angezeigt. aber sobald ich where aid=authors.id hinzufpge geht es nicht mehr. aid iist in jokes hab ich damit den richtigen syntax? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 14. Februar 2009 Teilen Geschrieben 14. Februar 2009 Damit hast Du ein sog. Cartesisches produkt. jede zeile der einen Tabelle wird mit jeder Zeile der anderen Tabelle verknüpft. Nicht unbedingt was Du haben möchtest. aber sobald ich where aid=authors.id hinzufpge geht es nicht mehr. Es "geht" schon. Es gibt nur einfach keine Daten, die zu dieser Bedingung passen. Anders ausgedrückt: Es gibt keine jokes die zu einer Autorenid passen würden. Schau in deinen Tabellen nach und überprüfen das. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ramiel Geschrieben 14. Februar 2009 Autor Teilen Geschrieben 14. Februar 2009 ah jetzt seh ichs die spalte aid hat den "inhalt" null aber wie muss ich das jetzt richitg eingeben um den witzen von er tabelle jokes über die spalte aid einen author zuzuweisen. weil es wäre doch ziemlich sinnfrei wenn ich jedem witz die aid eintragen muss bei ein paar dutzend würde das doch etwas lange dauern Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 14. Februar 2009 Teilen Geschrieben 14. Februar 2009 (bearbeitet) aber wie muss ich das jetzt richitg eingeben um den witzen von er tabelle jokes über die spalte aid einen author zuzuweisen. Du musst selbst die Spalte aid füllen (manuell oder per Update Befehl) aber die Information wer ursprünglich welchen Witz geschrieben hat ist nicht (mehr?) vorhanden. Zukünftig musst Du beim Einfügen eines Witzes sicherstellen, dass diese Spalte auch gefüllt ist. Sprich Du legst einen NOT NULL Constraint und zusätzlich noch einen Foreign key (Fremdschlüssel) auf die Spalte der auf die Autoren Tabelle verweist. Damit hast Du sichergestellt, dass zu jeder aid auch ein Autor existiert - andernfalls bekommst Du eine entsprechende Fehlermeldung. Dim Bearbeitet 14. Februar 2009 von dr.dimitri Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ramiel Geschrieben 14. Februar 2009 Autor Teilen Geschrieben 14. Februar 2009 so, ich hab jetzt alles eingetragen..... danke für die hilfe doktor! dann hab ich doch gleih noch mal ne frage ist zwar eher php aber dann muss ich nicht extra den speicherplatz des servers belasten.... <body> <h1>Autoren verwalten</h1> <ul> <?php // Verbindung zum Datenbankserver $dbcnx = @mysql_connect('localhost', 'root', '1234'); if (!$dbcnx) { exit('<p>Verbindungsaufbau zum Datenbankserver ' . ' zurzeit nicht möglich.</p>'); } // Datenbank auswählen if (!@mysql_select_db('jokes')) { exit('<p>Auswahl der Witzedatenbank' . 'zurzeit nicht möglich.</p>'); } $authors =@mysql_query('SELECT id, name FROM authors'); if (!$authors) { exit('<p>Fehler beim Aufruf aus der Witzedatenbank!<br /> ' . 'Error: ' . mysql_error() . '</p>'); } while ($author = mysql_fetch_array($authors)) { $id = $author['id']; $name = $htmlspecialchars($author['name']); echo '<li>$name ' . "<a href='editauthor.php?id=$id'>Bearbeiten</a>" . "<a href='deleteauthor.php?id=$id'>Löschen</a></li>"; } ?> </ul> <p><a href="newauthor.php">Neuen Autor einfügen</a></p> <p><a href="index.html">Zurück zur Startseite</a></p> </body>[/PHP] hier hab ich alles richtig gemacht und trotzdem kommt "ein" fehler: auf der seite steht dann.. [PHP]Autoren verwalten Verbindungsaufbau zum Datenbankserver ' . ' zurzeit nicht möglich.'); } // Datenbank auswählen if (!@mysql_select_db('jokes')) { exit(' Auswahl der Witzedatenbank' . 'zurzeit nicht möglich. '); } $authors =@mysql_query('SELECT id, name FROM authors'); if (!$authors) { exit(' Fehler beim Aufruf aus der Witzedatenbank! ' . 'Error: ' . mysql_error() . ' * '); } while ($author = mysql_fetch_array($authors)) { $id = $author['id']; $name = $htmlspecialchars($author['name']); echo '$name ' . "Bearbeiten" . "Löschen "; } ?> Neuen Autor einfügen Zurück zur Startseite Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 15. Februar 2009 Teilen Geschrieben 15. Februar 2009 hier hab ich alles richtig gemacht und trotzdem kommt "ein" fehler: auf der seite steht dann.. Wenn Du alles richtig gemacht hättest, dann würde es funktionieren... Was mich hier wundert ist, dass im Browser php Code zu sehen ist. Mein letztes php Programm ist schon länger her, aber das dürfte nicht passieren, wenn dein Webserver richtig konfiguriert ist. Daher halte ich diese Frage hier für offtopic und Du solltest sie im PHP Forum stellen (und spar nicht mit dem Speicherplatz des Servers ) Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ramiel Geschrieben 15. Februar 2009 Autor Teilen Geschrieben 15. Februar 2009 ja, mir ist schon klar das wenns nicht geht ein fehler vorliegt aber ich habe nach bestem wissen geproggt. 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.