Frage: SELECT bei mehreren Tabellen...

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
xpressive
Mitglied
Beiträge: 96
Registriert: 04.06.2004 13:39

Frage: SELECT bei mehreren Tabellen...

Beitrag von xpressive »

Habe ein kleines Problem, bei dem mir bestimmt jemand mal eben weiterhelfen kann:

Ich habe eine Tabelle mit Spielern:

Tabelle "Spieler": ID|Name|Adresse etc....

und eine zweite mit Spielen:

Tabelle "Games": ID|Spieler-ID|Datum etc...

Jetzt möchte ich eine Tabelle der Spieler ausgeben, in der alle Spieler samt ihren Daten angezeigt werden. Kein Problem.

Allerdings soll diese Liste auch nach Anzahl der Spiele, an denen jeder Spieler teilgenommen hat, sortiert werden. Wie müsste denn die SELECT-Abfrage lauten, wenn ich alle Daten aus der Tabelle "Spieler" auslesen möchte, diese aber nach Häufigkeit der Games mit der jeweiligen Spieler-ID sortiert werden sollen?

Kann mir jemand vielleicht einen Tipp geben?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ich nehme mal an es gibt pro Spieler und Spiel einen Eintrag in der zweiten Tabelle?
Probier mal das hier:

Code: Alles auswählen

select p.*, COUNT(g.spieler-ID) as anz FROM spieler p LEFT JOIN spiele g ON g.spieler-ID = p.ID GROUP BY g.spieler-ID ORDER BY anz
evtl. musst du es auch so machen:

Code: Alles auswählen

SELECT p.*, COUNT(g.spieler-ID) as anz FROM spieler p, spiele g WHERE p.ID = g.spieler-ID GROUP BY g.spieler-ID ORDER BY anz
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
xpressive
Mitglied
Beiträge: 96
Registriert: 04.06.2004 13:39

Beitrag von xpressive »

Hm, das gibt bei mir folgende Fehlermeldung:

Code: Alles auswählen

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/htdocs/v165816/Board/website/scripts/MemberManager/overview.php on line 91

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /www/htdocs/v165816/Board/website/scripts/MemberManager/overview.php on line 111

(Ich benutze nach dem Query mysql_num_rows($results) und mysql_fetch_assoc($results), um die Anzahl der gelieferten Datensätze und die einzelnen Felder auszulesen).

Ich nehme an, daß die Abfrage halt fehlschlägt, habe aber keine Ahnung warum...
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Wenn der Inhalt von mysql_num_rows($results) leer ist, erhälst Du o.g. fehlermeldung....

Prüfe doch der Einfachheit halber die SQL Abfrage im phpMyAdmin...
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Besser gesagt wenn $results keine gültige MySQL-Ressource ist. Wie sieht denn dein mysql_query()-Aufruf aus?
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

KB:knigge
Antworten

Zurück zu „Coding & Technik“