Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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?

Geschrieben

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?

Geschrieben

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

Geschrieben

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?

Geschrieben

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

Geschrieben

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

Geschrieben (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 von dr.dimitri
Geschrieben

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

Geschrieben
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 :D)

Dim

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...