13. Februar 200916 j 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?
14. Februar 200916 j 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?
14. Februar 200916 j 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
14. Februar 200916 j 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
14. Februar 200916 j 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?
14. Februar 200916 j 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
14. Februar 200916 j 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
14. Februar 200916 j 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 200916 j von dr.dimitri
14. Februar 200916 j 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
15. Februar 200916 j 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
15. Februar 200916 j ja, mir ist schon klar das wenns nicht geht ein fehler vorliegt aber ich habe nach bestem wissen geproggt.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.