| 
Autor
   | 
  
Thread
   | 
 
 
  | 
10.01.2007 09:52 Uhr
   | 
  
ausgabe und blättern
   | 
 
 
  
   
    
     | 
ulmli
      | 
     
    
     | 
Forenuser
      | 
     
    
     
 
      | 
     
    
     | 
registriert
      | 
     
03.01.2007
      | 
     
    
     | 
wohnt in
      | 
     
      | 
     
    
     | 
Beiträge
      | 
     
46
      | 
     
    
   | 
  
Hallo Flitze, hallo Ihr, 
ich stehe schon wieder vor zwei Problemen. 
 
Zum ersten: 
 
Ich mache mal ein Beispiel nehmen wir an ich wollte Interpreten und Alben speichern. 
jeder interpret hat verschieden alben die ich ja separt in einer Tabelle verknüpfe. 
Wenn ich die jetzt ausgeben will dann sieht das so aus 
 
das wäre die Tabelle mit Interpret und Album wo jeder Datensatz genauso ausgegeben wird. 
 
Herbert Grönemeyer    |     Bochun 
Herbert Grönemeyer    |     Ö 
Herbert Grönemeyer    |     Mensch  
usw. 
 
kann ich in php das irgendwie verwirklichen, dass ich danach eine Ausgabe bekomme wo ich den Interpreten dann aber nur einmal habe und trotzdem alle Alben bekomme? 
 
 
Herbert Grönemeyer  |     Bochum 
da steht dann nix   |     Ö 
da auch net     |     Mensch 
 
Also dass ich quasi den Datensatz Interpret nur einmal bekomme und die anderen aber schon angezeigt werden? 
 
 
Die zweite Frage: 
Wie kann es denn funktonieren bei der Datenbankausgabe zurück zu gehen auf die vorherige Seite einfach mit einem Button?  
Also das ich so wie die Seiten durchblättere, geht sowas überhaupt ich begreife nicht wie das gehen kann, bzw. wie das zu verwirklichen ist. 
Wäre klasse könntest Du mir nochmal helfen Flitze oder wer anderes. 
Liebe Grüße 
ulmli
 
 
Dieser Beitrag wurde am 10.01.2007 um 09:55:47 Uhr von ulmli zum 3. Mal editiert.
   | 
 
 
  
  
   | 
  
   | 
 
 
  | 
10.01.2007 19:50 Uhr
   | 
  
   | 
 
 
  
   
    
     | 
Flitze
      | 
     
    
     | 
Administrator
      | 
     
    
     
 
      | 
     
    
     | 
registriert
      | 
     
17.10.2006
      | 
     
    
     | 
wohnt in
      | 
     
Eschwege
      | 
     
    
     | 
Beiträge
      | 
     
332
      | 
     
    
   | 
  
Hey ulmli, 
 
also zu deinem ersten Problem wäre es hilfreich, wenn du mal die Struktur deiner Datenbanktabellen postest, damit ich mich da ein wenig besser reindenken kann, denn eigentlich sollte das nicht allzuschwer sein. 
 
Zu 2. 
guckstu dieses Tutorial
 
 
    
   | 
 
 
  
  
 
   | 
  
   | 
 
 
  | 
10.01.2007 23:54 Uhr
   | 
  
   | 
 
 
  
   
    
     | 
ulmli
      | 
     
    
     | 
Forenuser
      | 
     
    
     
 
      | 
     
    
     | 
registriert
      | 
     
03.01.2007
      | 
     
    
     | 
wohnt in
      | 
     
      | 
     
    
     | 
Beiträge
      | 
     
46
      | 
     
    
   | 
  
Hallo Flitze, 
erstmal vielen Dank das Tut habe ich übersehen    
 
Die Datenbank sieht wie folgt aus. 
Es gibt eine Tabelle mit Interpreten, Album, Lieder 
1 Interpret kann viele Alben haben   
1 Interpret kann  viele Lieder haben  
1 Album hat kann viele Lieder haben, aber auf verschiedenen Alben können gleiche Lieder sein. 
 
eine Tabelle Interpret 
id_inter, interpret 
eine Tabelle Alben 
id_album, albumname 
eine Tabelle Lieder 
id_lieder, Titel 
 
die habe ich eine Verknüpfungstabelle 
Inter_album 
id_ver1,id_inter, id_album 
und eine  
id_ver2, id_album, id_lieder 
id_ver3, id_inter, id_lieder 
 
so das wären die Tabellen mal villeicht ist das nicht ganz ok, dann bin ich für 
tipps natürlich sehr dankbar   wenn man es anders besser machen kann. 
Die DB ist nicht so groß dass mans nicht ändern könnte wenn man etwas einfacher haben kann. 
Grüßlis an Dich 
ulmli
   | 
 
 
  
  
   | 
  
   | 
 
 
  | 
11.01.2007 11:40 Uhr
   | 
  
   | 
 
 
  
   
    
     | 
Flitze
      | 
     
    
     | 
Administrator
      | 
     
    
     
 
      | 
     
    
     | 
registriert
      | 
     
17.10.2006
      | 
     
    
     | 
wohnt in
      | 
     
Eschwege
      | 
     
    
     | 
Beiträge
      | 
     
332
      | 
     
    
   | 
  
Ich würde die Verknüpfungstabellen weglassen und die Tabellen so aufbauen 
 
Code:
 Tabellenname:   Interpreten
+---------------+--------------+------+-----+---------+---------------+
| NAME          | TYP          | NULL | KEY | DEFAULT | Extras        |
+---------------+--------------+------+-----+---------+---------------+
| ID_Inter      | INT          |      | PRI |         |Auto_Increment |
| Interpret     | VARCHAR(255) |      |     |         |               |
+---------------+--------------+------+-----+---------+---------------+
 Tabellenname:   Alben
+---------------+--------------+------+-----+---------+---------------+
| NAME          | TYP          | NULL | KEY | DEFAULT | Extras        |
+---------------+--------------+------+-----+---------+---------------+
| ID_Alben      | INT          |      | PRI |         |Auto_Increment |
| ID_Inter      | INT          |  X   |     |         |               |
| Album         | VARCHAR(255) |      |     |         |               |
+---------------+--------------+------+-----+---------+---------------+
 Tabellenname:   Lieder
+---------------+--------------+------+-----+---------+---------------+
| NAME          | TYP          | NULL | KEY | DEFAULT | Extras        |
+---------------+--------------+------+-----+---------+---------------+
| ID_Lieder     | INT          |      | PRI |         |Auto_Increment |
| ID_Alben      | INT          |  X   |     |         |               |
| ID_Inter      | INT          |  X   |     |         |               |
| Lied          | VARCHAR(255) |      |     |         |               |
+---------------+--------------+------+-----+---------+---------------+
  
 
 
Die Tabellen kannst du jetzt einfach joinen und ausgeben lassen, was dann so aussehen könnte: 
 
PHP:
// Wenn du alle Alben zu allen Interpreten haben willst
 $sql = "SELECT
                 a.Album,
                 i.Interpret
         FROM
                 Alben a,
                 Interpreten i
         WHERE
                 a.ID_Inter = i.ID_Inter
        ";
 $result = mysql_query($sql);
 // Tabelle erstellen
 echo "<table>\n";
 $interpret = "";
 while($row=mysql_fetch_assoc($result)) {
     echo " <tr>\n";
     echo "  <td>\n";
     // Prüfen, ob ein neuer Interpret vorliegt
     if($interpret!=$row['Interpret']){
         // Neuen Interpreten speichern
         $interpret=$row['Interpret'];
         // Neuen Interpreten ausgeben
         echo $interbret."\n";
     }
     // falls es der gleiche Interpret ist,
     // den Namen nicht noch einmal schreiben
     else {
         echo " \n";
     }
     echo "  </td>\n";
     echo "  <td>\n";
     echo $row['Album']."\n";
     echo "  </td>\n";
     echo " <tr>\n";
 }
 echo "</table>\n";
 
 
 
Achtung, der Code ist nicht getestet, können also Syntaxfehler drin sein!
 
 
    
   | 
 
 
  
  
 
   | 
  
   | 
 
 
  | 
11.01.2007 15:50 Uhr
   | 
  
   | 
 
 
  
   
    
     | 
ulmli
      | 
     
    
     | 
Forenuser
      | 
     
    
     
 
      | 
     
    
     | 
registriert
      | 
     
03.01.2007
      | 
     
    
     | 
wohnt in
      | 
     
      | 
     
    
     | 
Beiträge
      | 
     
46
      | 
     
    
   | 
  
Hallo Flitze, 
Danke! 
nu hab ich ein kleines Problem, nämlich deine letzte Tabelle der Datenbank. 
Code:
Tabellenname:   Lieder
+---------------+--------------+------+-----+---------+---------------+
| NAME          | TYP          | NULL | KEY | DEFAULT | Extras        |
+---------------+--------------+------+-----+---------+---------------+
| ID_Lieder     | INT          |      | PRI |         |Auto_Increment |
| ID_Alben      | INT          |  X   |     |         |               |
| ID_Inter      | INT          |  X   |     |         |               |
| Lied          | VARCHAR(255) |      |     |         |               |
+---------------+--------------+------+-----+---------+---------------+  
 
 
die du angibst. 
 
Wenn ich den Liednamen in der Tabelle mit eingeben, kann es ja sein, dass ich den doppelt eingeben muss. Nämlich wenn das Lied auf verschiedenen Alben ist.  
Beispiel: 
ein Lied ist auf drei verschiedenen Alben  
dann muss ich doch dreimal den Liedtitel eingeben, dass ich das auch für drei verschieden ID_Alben habe... oder? Verstehe ich das falsch und ich will ja eigentlich doppelte Sachen doch vermeiden... oder nimmt man sowas dann einfach in kauf? 
Grüßle 
ulmli
   | 
 
 
  
  
   | 
  
   | 
 
 
  | 
11.01.2007 17:18 Uhr
   | 
  
   | 
 
 
  
   
    
     | 
Flitze
      | 
     
    
     | 
Administrator
      | 
     
    
     
 
      | 
     
    
     | 
registriert
      | 
     
17.10.2006
      | 
     
    
     | 
wohnt in
      | 
     
Eschwege
      | 
     
    
     | 
Beiträge
      | 
     
332
      | 
     
    
   | 
  
Zitat: oder? Verstehe ich das falsch und ich will ja eigentlich doppelte Sachen doch vermeiden... oder nimmt man sowas dann einfach in kauf?  
Also ich würde es 'in Kauf' nehmen, weil ich es für sauberer halte, für jedes Lied nen eigenen Datensatz zu haben.  
 
Man könnte sich auch umständlich was mit nem String als Datenfeld zusammenbasteln, bei dem man die einzelnen ID_Alben durch nen Trennzeichen trennt, aber ehrlich gesagt ist das wahrscheinlich aufwendiger und unperformanter als für jedes Lied einen eigenen Datensatz anzulegen.
 
 
    
   | 
 
 
  
  
 
   | 
  
   | 
 
 
  | 
11.01.2007 19:04 Uhr
   | 
  
   | 
 
 
  
   
    
     | 
ulmli
      | 
     
    
     | 
Forenuser
      | 
     
    
     
 
      | 
     
    
     | 
registriert
      | 
     
03.01.2007
      | 
     
    
     | 
wohnt in
      | 
     
      | 
     
    
     | 
Beiträge
      | 
     
46
      | 
     
    
   | 
  
Huhu Flitze, 
ok, dann werde ich das mal wieder umbauen, und so machen.  
wenns nicht klappt frage ich nochmal :-) 
wenn ich darf und noch nicht all zu sehr nerve. 
Grüße an dich 
ulmli
   | 
 
 
  
  
   | 
  
   | 
 
 
  | 
11.01.2007 19:06 Uhr
   | 
  
RE:
   | 
 
 
  
   
    
     | 
Flitze
      | 
     
    
     | 
Administrator
      | 
     
    
     
 
      | 
     
    
     | 
registriert
      | 
     
17.10.2006
      | 
     
    
     | 
wohnt in
      | 
     
Eschwege
      | 
     
    
     | 
Beiträge
      | 
     
332
      | 
     
    
   | 
  
Zitat: ulmli 
Huhu Flitze, 
ok, dann werde ich das mal wieder umbauen, und so machen.  
wenns nicht klappt frage ich nochmal :-) 
wenn ich darf und noch nicht all zu sehr nerve. 
Grüße an dich 
ulmli  
 
Klar doch, kein Problem  
 
 
    
   | 
 
 
  
  
 
   | 
  
   | 
 
 
  | 
11.01.2007 19:36 Uhr
   | 
  
   | 
 
 
  
   
    
     | 
Negura
      | 
     
    
     | 
Forenposter
      | 
     
    
     | 
 
      | 
     
    
     | 
registriert
      | 
     
06.12.2006
      | 
     
    
     | 
wohnt in
      | 
     
      | 
     
    
     | 
Beiträge
      | 
     
57
      | 
     
    
   | 
  
Guten Abend die Herrn, 
 
Ich bin mir da nun nicht so sicher, aber bei Flitzes struktureller Darstellung der Tabellen würde ich in der Tabelle Lieder die Spalte InterpretID auslassen, da durch die Verknüpfung durch AlbenID schon ein Quellenbezug besteht. Kurz gesagt, das müsste ein Normalisierungsschritt sein und Redundanz einschränken. 
 
Viel Erfolg 
Gruß Negura
   | 
 
 
  
  
   | 
  
   | 
 
 
  | 
11.01.2007 21:13 Uhr
   | 
  
   | 
 
 
  
   
    
     | 
Flitze
      | 
     
    
     | 
Administrator
      | 
     
    
     
 
      | 
     
    
     | 
registriert
      | 
     
17.10.2006
      | 
     
    
     | 
wohnt in
      | 
     
Eschwege
      | 
     
    
     | 
Beiträge
      | 
     
332
      | 
     
    
   | 
  
Normalerweise würde ich dir Recht geben, aber das würde bedeuten, dass ein Lied zwingend auf einem Album sein muss. Was ist aber mit Singles etc..?
 
 
    
   | 
 
 
  
  
 
   | 
  
   |