Webstatt.org - Community seit 2006 - 2012 (2024?)

mySQL Konzert-Datenbank. Konzeption/Verknüpfung

Avatar user-297
17.03.2007 11:36

Ich möchte eine Datenbank erstellen, in denen von mir besuchte Konzerte stehen.

Hierzu habe ich vier Tabellen erstellt. Da sich mehrere Datensätze oft wiederholen würden, sollen in die konzert-Tabelle die anderen drei integriert werden. Wie genau muss ich das mit php machen?
Gibt es sonst Kritikpunkte an dieser Konzeption?

db2.gif: Ungefähr könnte eine Abfrage aussehen
db.gif: Tabellenverknüpfung

Fachabi 2007
Avatar user-182
17.03.2007 11:45

einfach joinen, oder hab ich was überlesen..?
SELECT konz.id ID, bands.name Bandname, typ.typname Typ, loc.name Location, konz.datum Datum, konz.bew Bewertung, konz.komm Kommentar FROM konzerte konz, typ, location loc, bands WHERE konz.band = bands.id && konz.typid = typ.id && konz.location = loc.id


also einfacher:
SELECT 
konz.id ID,
bands.name Bandname,
typ.typname Typ,
loc.name Location,
konz.datum Datum,
konz.bew Bewertung,
konz.komm Kommentar

FROM
konzerte konz,
typ,
location loc,
bands

WHERE
konz.band = bands.id &&
konz.typid = typ.id &&
konz.location = loc.id


iwie so zwinkern

Seid ihr auch schon wix'r? xD
Avatar user-253
17.03.2007 11:48

SELECT * FROM konzerte 
LEFT JOIN bands ON konzerte.Bandname = bands.ID
LEFT JOIN typ ON konzerte.Typ = typ.ID
LEFT JOIN location ON konzerte.Location = location.ID


// edit

Anstelle von SELECT * natürlich SELECT die,Felder,die,du,brauchst

Avatar user-236
17.03.2007 19:32

Hi.

ganz normalirsiert ist das noch nicht, aber ich denke es erfüllt seinen zweck. übrigens kannst du dir mal das programm toad holen. die basisfunktionalitäten gibt's als freeware und du kannst dir dann ein ERM erstellen.
praktisch ist, dass man sich dann per knopf die tabellen in sql generieren kann!

signature in progress
Avatar user-297
20.03.2007 19:48

<?php
mysql_connect("localhost",
"bla","bla"zwinkern or die
("Keine Verbindung moeglich"zwinkern;
mysql_select_db("Tabelle"zwinkern or die
("Die Datenbank existiert nicht"zwinkern;

$abfrage = "SELECT bandname,typ,location,datum,bewertung,kommentar FROM konzerte ORDER BY `ID` DESC
LEFT JOIN bands ON konzerte.Bandname = bands.ID
LEFT JOIN typ ON konzerte.Typ = typ.ID
LEFT JOIN location ON konzerte.Location = location.ID";

// wie gehts nun weiter?

?>

Hm, ich hab schon n bisschen rumprobiert, aber hier wirds mir zu kompliziert. Im Internet hab ich auch nur recht allgemeine Anleitungen gefunden. Wäre nett wenn mir jemand schreiben könnte, wie hier genau das Auslesen mit PHP funktionert.

Fachabi 2007
Avatar user-253
20.03.2007 20:51

$query = mysql_query($abfrage) or die('Fehler'zwinkern;
print '<pre>';
while($data = mysql_fetch_assoc($query)) {
print_r($data);
}


1) Das <pre> ist nur für die Ausgabe des print_r
2) Anstelle des print_r musst du innerhalb der while Schleife die Sachen machen, die du brauchst.

Avatar user-297
21.03.2007 20:23

Okay, habs jetzt dank euch (und user-148tian via ICQ) ganz gut hinbekommen:

<?php
mysql_connect("",
"",""zwinkern or die
("Keine Verbindung moeglich"zwinkern;
mysql_select_db(""zwinkern or die
("Die Datenbank existiert nicht"zwinkern;

$abfrage = "SELECT band,typ.typ,location.location,ort,datum,bewertung,kommentar FROM konzerte
LEFT JOIN bands ON konzerte.Band = bands.ID
LEFT JOIN typ ON konzerte.Typ = typ.ID
LEFT JOIN location ON konzerte.Location = location.ID";

// Tabellenbeginn
echo "<table border>";
// Überschrift
echo "<tr> <td>Bandname</td> <td>Veranstaltung</td>";
echo "<td>Location</td> <td>Ort</td>";
echo "<td>Datum</td> <td>Kommentar</td>";
echo "<td>Bewertung</td> </tr>";

$query = mysql_query($abfrage) or die(mysql_error());
//print '<pre>';
while($data = mysql_fetch_assoc($query)) {
//print_r($data);
echo "<tr> <td>".$data['band']."</td><td>".$data['typ']."</td><td> ".$data['location']."</td><td>".$data['ort']."</td><td>".$data['datum']."</td><td>".$data['bewertung']." </td><td>".$data['kommentar']."</td>";
}

?>


http://sheep24.de/sheep/konzerte2.php

Morgen mach ich mich an ein Formular zum Befüllen der Datenbank. lächeln

Fachabi 2007