• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Php komplizierte Abfrage aus der MySql Datenbank.

FreakyHTML

Neues Mitglied
So ich nochmal ;)

Ich habe da eine Frage. Die lässt sich ab recht schwer stellen. Das Problem ist, dass ich einfach nicht sehe, wie ich zu einer Lösung komme. Also kommen wir zum Problem:

Hier erstmal der Code, auf den ich mich beziehe:
PHP:
<?php
include("config.php"); 
error_reporting(0);                
$result = mysql_query("SELECT nummer FROM musik");                        
while($row = mysql_fetch_assoc($result))        
{        
?>        
<tr>        
<td align="center" valign="top">        
<?php        
echo "<a href=\"?mp3=musik".$row['nummer'].".mp3\"><img src=\"play.png\"></a>";        
?>       
</td>        
</tr>        
<?php        
}    
?>

Es geht darum, dass ich ein Cover anzeigen lassen möchte. Keine Sorge, es ist alles Legal. Es ist eigene Musik und eigene Covers.

Also ich habe eine Datenbank mit den Musikinformationen. Und dort habe ich eine Spalte namens "Nummer". Diese Nummer soll sozusagen die mp3 Datei beschreiben. Das klappt auch alles super. Nun möchte ich aber auch das passende Cover zu dem Lied anzeigen. Und ich habe keine Ahnung wie ich das angehen soll. Kann ich irgendwie die Nummer vom Musikstück verwenden um dann auch ein Cover mit dieser Nummer aufzurufen? Aber wie gehe ich das an?? Ich bin verzweifelt...

Bitte um Hilfe!!!
 
Wenn alle Musikstücke in einer Tabelle liegen und mehrere davon sich ein Cover teilen, kannst du die Cover in einer separaten Tabelle abspeichern und mit JOINS arbeiten.
Wenn pro Musikstück jedes Mal ein anderes Cover - jedes Mal - vorhanden ist, kannst du die Cover-Namen (Bilder) z. B. durchnummerieren und eine Spalte mit den Nummer anlegen. Die werden dann in eine vorgefertigte Maske eingeschrieben.

Hier ein Ansatz:

PHP:
<?php
echo '
<table>
   <tr>
      <td>Cover</td>
      <td><img src="dir1/dir2/'.$row['cover_numer'].'.jpg" alt="Cover" /></td>
   </tr>
</table>
';
?>

Ausgabe:

HTML:
<img src="dir1/dir2/05.jpg" alt="Cover" />

Nils aka XraYSoLo
 
Zuletzt bearbeitet:
Ok das klingt ja auch nach dem, was ich mir gedacht habe. Aber wie sage ich ihm denn jetzt trotzdem, welches Cover er aufrufen soll. Mit $row sammelt er ja bloß alle. Also wenn ich jetzt 5 Titel habe, und der 5. angeklickt wird, dann wird ja musik5.mp3 aufgerufen. Aber wie rufe ich denn dann auch cover5.jpg auf?! Ist mir irgendwie noch ein wenig unklar.. :(
 
Poste mal hier deine Datenbankstruktur oder ein Capture davon, dann hab' ich die exakte Lösung.

Nils aka XraYSoLo
 
[TABLE="class: data"]
[TR="class: even, bgcolor: #CCFFCC"]
[/TR]
[TR="class: odd marked, bgcolor: #FFCC99"]
[TH]id[/TH]
[TD]int(11)[/TD]
[TD][/TD]
[TD][/TD]
[TD]Nein[/TD]
[TD]Kein[/TD]
[TD]AUTO_INCREMENT[/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"]
bd_ftext.png
[/TD]
[/TR]
[TR="class: even, bgcolor: #D5D5D5"]
[TD="align: center"][/TD]
[TH]nummer[/TH]
[TD]int(11)[/TD]
[TD][/TD]
[TD][/TD]
[TD]Nein[/TD]
[TD]Kein[/TD]
[TD][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"]
bd_ftext.png
[/TD]
[/TR]
[TR="class: odd, bgcolor: #E5E5E5"]
[TD="align: center"][/TD]
[TH]interpret[/TH]
[TD]text[/TD]
[TD]latin1_german2_ci[/TD]
[TD][/TD]
[TD]Nein[/TD]
[TD]Kein[/TD]
[TD][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[/TR]
[TR="class: even, bgcolor: #D5D5D5"]
[TD="align: center"][/TD]
[TH]titel[/TH]
[TD]text[/TD]
[TD]latin1_german2_ci[/TD]
[TD][/TD]
[TD]Nein[/TD]
[TD]Kein[/TD]
[TD][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[/TR]
[TR="class: odd, bgcolor: #E5E5E5"]
[TD="align: center"][/TD]
[TH]album[/TH]
[TD]text[/TD]
[TD]latin1_german2_ci[/TD]
[TD][/TD]
[TD]Nein[/TD]
[TD]Kein[/TD]
[TD][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[TD="align: center"][/TD]
[/TR]
[TR="class: even, bgcolor: #CCFFCC"]
[TD="align: center"][/TD]
[TH]dauer[/TH]
[TD]text[/TD]
[TD]latin1_german2_ci[/TD]
[TD][/TD]
[TD]Nein[/TD]
[TD]Kein

[/TD]
[/TR]
[/TABLE]

So hoffe das hilft.
 
So, jetzt noch eine Spalte "Cover" dazu und den entsprechenden namen (und ggf. bei Abweichung Endung) einfügen. Dann wars das auch schon.

Nils aka XraYSoLo
 
Grundsätzlich ist es problemlos Möglich die Cover zu einem Musikstück anzeigen zu lassen.
Am besten geht das über einen Join. Das nachfolgende Beispiel zeigt dir einen sog. LEFT JOIN, bei dem der MP3-Titel, sowie das zugehörige Cover (sollte ein entsprechender Eintrag in der zweiten Tabelle existieren) aus.

Beispiel
Gegeben: 2 Tabellen
Tabelle 1 (MP3-Dateien; titles)
Code:
+----+-------------+
| id | title       |
+----+-------------+
| 1  | Titel_1.mp3 |
| 2  | Titel_2.mp3 |
| 3  | Titel_3.mp3 |
+----+-------------+

Tabelle 2 (Cover; covers)
Code:
+----+------------+-------------+
| id | id_title   | cover       |
+----+------------+-------------+
| 1  |  1         | Cover_1.mp3 |
| 2  |  3         | Cover_3.mp3 |
| 3  |  2         | Cover_2.mp3 |
+----+------------+-------------+

So, nun wollen wir den MP3-Titel "Titel_2.mp3" und das zugehörige Cover aus der Datenbank haben. Im folgenden Fall kennen wir natürlich die entsprechende ID des Datensatzes in der Tabelle "titles".

SQL-Query:
Code:
SELECT t.title, c.cover 
FROM titles AS t 
LEFT JOIN covers AS c 
ON t.id=c.id_title 
WHERE t.id=2

Ausgabe:
Code:
+-------------+-------------+
| Titel_2.mp3 | Cover_2.mp3 |
+-------------+-------------+
 
@XraYSoLo und wie stellst du dir es dann weiter vor? wie bekomme ich die das mit dem Cover dann hin?
@
CPCoder Ja genau das wollte ich ja machen. Aber was mache ich denn, wenn ich die id nicht weiß!? Heißt: Was mache ich, wenn ich einfach nur alle mp3s auflisten lasse und dann eine rauspicke? Dann habe ich ja keine id. Und da liegt ja mein Problem... :/
 
Lerne Grundlagen Datenbank Entwicklung danach ist das alles keine Problem mehr. Und das ganze hat nun wirklich nix mit einer komplizierten abfrage zu tun. Das sind noch die einfachen Sachen.
 
@CPCoder Ja genau das wollte ich ja machen. Aber was mache ich denn, wenn ich die id nicht weiß!? Heißt: Was mache ich, wenn ich einfach nur alle mp3s auflisten lasse und dann eine rauspicke? Dann habe ich ja keine id. Und da liegt ja mein Problem... :/

Wenn du alle MP3s auflistest, dann lies sie halt auch mit der ID aus der Datenbank aus und bau diese ID in den Link ein.
Wie meine Vorposter schon schrieben, gehört dies zu den Grundlagen!
 
So habe es jetzt geschafft :D Die Lösung war eigentlich total einfach :P Naja manchmal scheitert man einfach an den einfachsten Dingen. Trotzdem Danke für eure Hilfe. Wer dabei noch Hilfe braucht oder meine Lösung erfahren möchte, kann mich per Pn gerne anschreiben!

Schönen Ostermontag euch. Bis zu den nächsten banalen Fragen... :D
 
Zurück
Oben