Höchsten Wert aus Tabellen ausgeben

GFENONO

Mitglied
Hallo


Ich hoffe das Topic ist eingiermaßen gut gewählt.
Ich stehe vor einem Problem.
Meine Gallery ist folgendermaßen aufgebaut:
Alle Namen und weitere Daten sind in einer Tabelle gespeichert. Durch diese Tabelle hole ich mir dann den Namen und kann somit auf die spezielle Tabelle zugreifen die angezeigt werden soll.
Also: Tabelle1 enthält Namen der einzelnen Galleries.
Tabelle2 ist die Tabelle die die Namen der Bilder gespeichert hat und auch dieZugriffe
der einzelnen Bilder(um dieses gehts)

Ich möchte nun also das von der Tabelle 1 alle Namen abgerufen werden und dann desweiteren die Tabellen2 geprüft werden welches Bild die meisten Zugriffe hat und dieses Bild dann auch ausgeben.

Ich hoffe mal das es verständlich rüber kommt.
 
wie sind die tabellen miteinander verknüpft? kann zu jedem namen in tabelle 1 verschieden viele bilder existieren? oder ist das eine 1 zu 1 beziehnung? oder zu jedem bild (tab 2) viele namen(tab 1)? Ich könnte dir höchstens den sql geben, falls du den brauchst. php kann ich dir net helfen.
 
jetzt hab ichs (glaub ich) verstanden.

also der Select würde so aussehen. Keinen Ahnung, ob man den noch optimieren kann. Voraussetzung ist, das mit ID´s als Primary und ForeignKey gearbeitet wird:


SELECT A.NAME, B.BILD
FROM TABELLE1 A
LEFT OUTER JOIN TABELLE2 B ON A.ID = B.TABELLE1_ID AND
B.ID = (SELECT FIRST 1 B.ID
FROM TABELLE2 B
WHERE A.ID = B.TABELLE1_ID
ORDER BY B.ZUGRIFF DESC)
WHERE B.ID IS NOT NULL

hoffe, dass ich wirklich deinen Sachverhalt verstanden und dies geholfen hat. ade
 
Wenn ich dass richtig verstanden habe, beinhaltet die erste Tabelle nur die Informationen über die Gallerien, die zweite allerdings alle Bilder und die zugehörigen Daten. Wieso willst du über die erste Tabelle gehen, wenn doch eigentlich nur die Daten aus der zweiten Tabelle interessant sind? Den größten Wert in einer bestimmten Spalte kannst du mit MAX() oder mit einer Kombination aus ORDER BY und LIMIT 1 erreichen.
MfG, Andy
 
ich will in einer extra seite die meist angesehensten bilder aller gallerien anzeigen drum muss ich den umweg über die erste tabelle gehen...mit max(); habe ich es schon versucht aber ich bekam es nicht hin das dann dieses bild welches den höchsten wert hat angezeigt hat...ich konnte die while schleife an der stelle nicht stoppen(wenn das überhaupt der richtige ansatz war)

Hier mal der Ansatz:
PHP:
//DATENBANKVERBINDUNG

$query = "SELECT * FROM gallery";//TABELLE 1
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){

$folder = $row['galleryfolder'];//HIER WERDEN DIE EINZELNEN GALLERIEN GENOMMEN

$query2 = "SELECT * FROM $folder WHERE zugriffe >= '1'";//EINZELNEN GALLERIEN DRUCHSUCHEN
$result2 = mysql_query($query2);
while($row = mysql_fetch_array($result2)){
$a[] = $row[zugriffe]; 

}
}
echo $max = max($a);
 
Zuletzt bearbeitet:
Uns würde mal der Aufbau deiner Datenbanken interessieren. Der SQL-Befehl, der diese erstellen würde, wäre also nicht schlecht. Den kann man über PHP-MyAdmin bekommen.
MfG, Andy
 
ich weiß es kling tdumm, aber es wäre nicht schlecht wenn mirgesagt wird wo ich das mache...so vertieft bin ich dann doch nicht in der materie
 
Ich nehme an, du hast phpMyAdmin?

Wähle dort die Tabelle "gallery", gehe auf "Exportieren", mache das Häkchen bei "Daten" raus und gehe auf "Absenden" (oder wie auch immer der Button beschriftet ist).
Das selbe machst du für die andere Tabelle.
Die beiden Ausgaben kopierst du dann in deinen Post. (In Codetags.)
 
Zurück