brauche Hilfe bei datenbankabfrage

hups1803

Erfahrenes Mitglied
ich habe ein Download Counter der bei klicks seine daten in eine db schreibt

db Counter

PHP:
Id
filename
downloads

nun habe ich eine Abfrage die mp3 einträge aus der Datenbank holt und möchte bei der anzeige nun den counter mit anzeigen.

der Tabellenname ist musik und der feldname ist mp3

der filename der in der Counter Tabelle ist gleich mit den Feld Namen der Musik Tabelle

die Musik-tabelle rufe ich so auf

PHP:
$sql3 = "SELECT * FROM  ".MPREFIX."mp3_musik_config WHERE musik_user_id  ='".$id."' ORDER BY id DESC";
$res3 = mysql_query($sql3) ;
while($row1 = mysql_fetch_array($res3))

	{$text = $row1[mp3];
}

Verkürzte darstellung

wie bekomme ich nun den bezug zu der Countertabelle hin , das die einträge so Aussehen wie im Beispiel.

Beispiel:

lied.mp3 Counter:3

Danke für eure Hilfe
 
wieso machst du das auf 2 Tabellen verteilt?

Also bei meinem Download Script sieht die Tabelle so aus

PHP:
fileId		int
fileName	varchar
fileTitle	varchar
fileDate	datetime
counter		int

Und dann brauchst auch keinen Join wie in deinem Beispiel
 
PHP:
Id                  int
filename       varshar
downloads   int

zur ergänzung .

Danke für deine Antwort aber ich möchte es in eine exta tabelle haben .

hättest du mal den code für meine Variante wie sieht der aus ****
 
habe es mal so Versucht.

PHP:
$sql3 = "SELECT
  `e107_mp3_download_manager`.*, `e107_mp3_musik_config`.*
FROM
  `e107_mp3_download_manager` INNER JOIN
  `e107_mp3_musik_config` ON `e107_mp3_download_manager`.`filename` =
    `e107_mp3_musik_config`.`mp3`
WHERE `e107_mp3_musik_config`.`musik_user_id` = '".$id."'
  ";

jetzt wird der counter richtig angezeigt, doch leider Ingnoriet er die Where schleife und zeigt alle an die unter musik_config in dem feld mp3 drinne sind .
 
Ich rate dir dringend, die SQL formatiert zu schreiben. Es Es macht sie lesbar!
Hier mal der Vwergleich zu deinem gekripsel
- Bei langen Tabellennemane Aliase verwenden
- die ` nur dort anwenden wo sie wirklich notwendig sind. Also bei Namen die auch SQL_Befehlen entsprechen
SQL:
SELECT
  dm.*, 
  mc.*
FROM
  e107_mp3_download_manager AS dm
  INNER JOIN e107_mp3_musik_config AS mc
  	ON dm.filename = mc.mp3
WHERE
 mc.musik_user_id = '{$id}'

Was verstehst du mit 'alle an die unter musik_config in der mp3 drinne'? Was ist bei dir die mp3?
 
Zuletzt bearbeitet von einem Moderator:
Danke für dein tip habe den code aus Mysql front der schreibt das so kompliziert.

Habe dein Beispiel mal eingesetzt,

ds haut aber nicht hin

ich habe in der tabelle musik_config 2 namen test1 und test

einträge bei test =3 (im feld mp3 stehen acu die mp3's drin)

einträge bei test1 = 2 (im feld mp3 stehen acu die mp3's drin)

bei deinen Code zeigt er nur die an die auch in der tabelle download_manager stehen

also die die schon gedownloadet sind alle anderen nicht .

kann der Code irgendwie erweitert werden , das er beim fehlenden eintrag in der Tabelle download_manager trotzdem die einträge alle nach $id sortiert aus der musik_config anzeigt ****

mfg
 
Zuletzt bearbeitet:
Mein SQL entspricht deinem SQL. Ich habs nur mal lesbar gemacht.

Was du eigentlich willst, versteh ich aber immer noch nicht.

Beschreib doch mal deine Beispiel tabellenmässig. also etwa so:
Code:
Tabelle 1:
id | name      | adresse
-------------------------------------
1  | Test User | Musterstrasse
2  | User Test | Beispielstrasse 13
 
Zurück