Zugriff auf MySQL DB

Jacy

Mitglied
Hallo zusammen,

ich habe hier eine eher etwas abstraktere Aufgabe, hier geht es weniger um den Code,sondern mehr um das wie ich etwas aufbauen muss.

Also ich habe eine MySQL DB mit den Tabellen Album, Genre, Künstler, Label, Tracks etc. Die Tabellen Genre, Label und Künstler bestehen jeweils aus dem Primärschlüssel gID, bzw lID oder kID, die Tabelle Album aus aID, Titel und aus den Werten der anderen Tabellen gID, lID, und kID.

Frage 1: Kann ich diese irgendwie verknüpfen?

und meine Haupfrage 2:

wenn ich auf einer Webseite über ein Formular (PHP) dort ein neues Album einfügen will,wie muss ich vorgehen,dass sich nichts doppelt?

Irgendwie hänge ich hier an der Grundüberlegung :-(
 
Antwort auf Frage 1:

Mittels eine SQL-JOIN.

Antwort auf Frage 2:

Die einfachste Art und Weise doppelte Einträge zu verhindern ist, das jeweilige Feld in der DB als "UNIQUE" zu kennzeichnen. Dann muss man natürlich Fehler bei SQL-Inserts abfangen.
 
Ok danke für den Tipp, wie ich gesehen habe sind diese bereits auf UNIQUE eingestellt. Kann ich dann im PHP Skript eine Drop-Down-Liste angelegen, in der bereits bestehende Interpreten aufgelistet sind und ich diese auswähle?
 
Selbstverständlich geht das. Dazu müsstest du die Datensätze mittels SQL-SELECT auslesen, über alle Ergebnisse iterieren und sie als <option> in ein <select>-Feld (HTML) reinschreiben.
 
Du kannst mir nicht zufällig sagen wie das mit dem iterieren und dann als <option> bereitstellen funktioniert?
 
Ok, also angenommen, du hast die Tabelle kuenstler, dann wäre eine mögliche Lösung:

PHP:
// SQL vorbereiten
$sql = "SELECT * FROM kuenstler";
// Ausführen und Ergebnismenge abholen
$resultSet = mysql_query($sql) or die("Fehler beim Ausführen von SQL<pre>$sql</pre>" . mysql_error());

// HTML-Drop-Down-Menü vorbereiten
echo '<select name="kuenstler_id">';
// Über die Ergebnismenge iterieren und bei jedem Durchlauf eine Zeile holen
while( $row = mysql_fetch_assoc($resultSet) )
{
  // $row beinhaltet nun den Inhalt einer Zeile der Tabelle kuenstler, Spalten-Zugriff über den Namen
  echo '<option value="' . $row['kID'] . '">' . $row['kuenstler_name'] . '</option>';
}
// Ergebnismenge freigeben (Speicher)
mysql_free_result($resultSet);
// Drop-Down-Menü schließen
echo '</select>';

Oder so ähnlich.
 
Juhu super,es funktioniert *freu*hüpf*spring* Also zumindest wird das Drop-Down-Menü mit den Künstlern aus der DB angezeigt. Und wenn ich das Formular jetzt absenden würde, wäre der jeweilige Künstler dann gewählt oder?
 
Zuletzt bearbeitet:
Zurück