Zum Inhalt springen

Probleme beim Sortieren [PHP / SQL]


Empfohlene Beiträge

Ich habe folgenden code:

function sort_parks($current_year) {
$sql = "SELECT
userid,
nickname,
age,
wohnort,
name
FROM
cbook_users
WHERE
online='1';";
$result = mysql_query($sql) OR die(mysql_error());
if(mysql_num_rows($result)) {
$i = "1";
while($row = mysql_fetch_assoc($result)) {
$sql_p = "SELECT
parkid
FROM
cbook_besuch
WHERE
jahr='".addslashes(htmlspecialchars($current_year))."'
AND userid='".addslashes(htmlspecialchars($row['userid']))."'
GROUP BY
parkid;";
$result_p = mysql_query($sql_p) OR die(mysql_error());
if(mysql_num_rows($result_p)) {
$daten_p = array();
while($row_p = mysql_fetch_assoc($result_p)) {
$daten_p[] = $row_p['parkid'];
}
$parks = count($daten_p);
} else {
$parks = "0";
}
if($parks > 0) {
echo('<tr>');
echo("<td width=\"25\">".$i.".</td>");
echo("<td width=\"130\"><a href=\"./page1.php?userid=".$_GET['userid']."&showid=".$row['userid']."&jahr=".$current_year."&page=1\">");
if(isset($_SESSION['ID']) && $_SESSION['ID'] == $row['userid'] && $_GET['userid'] == $row['userid']) {
echo("<font color=\"#FF0000\"><b>".$row['nickname']."</b></font>");
} else {
echo($row['nickname']);
}
echo("</a></td><td>".$row['name']."</td><td>".$row['age']."</td><td>".$row['wohnort']."</td>");
echo('<td>');
echo($parks);
echo('</td>');
echo('</tr>');
$i++;
}
}
}
}[/PHP]

Diese Funktion ist eingebettet in eine Tabelle... mit ihr soll man alle User nach der Anzahl besuchter Parks sortieren können.

Die derzeitige Ausgabe sieht ungefähr so aus:

1. Morfois 4

2. Noel 6

3. test 3

Problem hierbei: wie lasse ich den User mit den meisten besuchten Parks in der Liste oben stehen?

Für Vorschläge währe ich sehr dankbar!

Viele Grüße

Morfois

P.S. $current_year ist immer das aktuelle Jahr, dementsprechent derzeit 2006 :o)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dankeschöööön, funktioniert super! ^^

Ebenfalls funktionsfähig ist diese Lösung:

SELECT count( a.userid ) AS anzahl, a.Jahr, a.userid, nickname, age, wohnort, name

FROM cbook_besuch a

RIGHT JOIN cbook_users b ON a.userid = b.userid

WHERE jahr =2006

GROUP BY userid

ORDER BY anzahl DESC

Hierbei nochmal vielen Dank an Schiller256!

Link zu diesem Kommentar
Auf anderen Seiten teilen

hm... wie sage ich ihm denn dann hierbei, das er die zwei "zaehler" zusammenaddieren soll???

SELECT cbook_users.userid, cbook_users.name, cbook_users.nickname, cbook_users.age, cbook_users.wohnort, count( DISTINCT cbook_kirmes.kirmesid, cbook_kirmes.userid ) AS zaehler
FROM cbook_users, cbook_kirmes
WHERE cbook_users.online = '1'
AND cbook_users.userid = cbook_kirmes.userid
AND jahr = '2006'
GROUP BY cbook_users.userid
UNION
SELECT cbook_users.userid, cbook_users.name, cbook_users.nickname, cbook_users.age, cbook_users.wohnort, count( DISTINCT cbook_ride.rideid, cbook_ride.userid ) AS zaehler
FROM cbook_users, cbook_ride
WHERE cbook_users.online = '1'
AND cbook_users.userid = cbook_ride.userid
AND jahr = '2006'
GROUP BY cbook_users.userid
ORDER BY zaehler DESC[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich möchte also quasi die anzahl der einträge der tabelle cbook_ride aller user, welche online='1' sind mit denen der tabelle cbook_kirmes addieren, jedoch nicht die wirkliche anzahl, sondern die anzahl der gefahrenen bahnen, d.h. 2 mal eine bahn gefahren bedeutet für den user nicht fahrten == 2 sondern anzahl gefahrener bahnen == 1... plus dann natürlich die anzahl der tabelle cbook_kirmes.

Und danach will ich dann anzahl DESC sortieren! fertig :-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...