Zeige alle Beiträge von user-id Ordne nach Follower
portseven
- php
Tag,
brauche Hilfe bei meinem SQL-Code.
Ich gehe z.b auf die Seite friends.php?user=10 .
Das heißt es werden alle Freunde von User 10 angezeigt.
Wie kann ich es jetzt Ordnen, dass alle Freunde angezeigt werden wo die Freunde von mir am meisten (Freunde hat) und dann absteigend nach unten geht.
Mir fallen keine Methoden mehr.. hat jemand eventuell von euch eine Ahnung?
Tabelle: user_id | follower_id | date
Code: $id = $_GET["user"]; // 10
SELECT
user.id,
user.name,
user.nachname,
user.username,
user.image,
user.private,
follow.user_id,
Cfollow.follow_id,
follow.process,
follow.date
FROM follow
LEFT JOIN user
ON follow.user_id = user.id
WHERE follow.follow_id = :follow AND follow.process = 1");
$sort->BindParam(':follow', $id);
if(!$sort->execute()) {
print_r($sort->errorInfo());
}
Tach!
Wie kann ich es jetzt Ordnen, dass alle Freunde angezeigt werden wo die Freunde von mir am meisten (Freunde hat) und dann absteigend nach unten geht.
Wenn ich diesen seltsamen Satz richtig verstanden habe, ...
Mir fallen keine Methoden mehr.. hat jemand eventuell von euch eine Ahnung?
... wie wäre es mit Zählen und dann nach diesem Wert sortieren?
Was definierst du als Freund? Ich sehe in der Query weder diesen Begriff noch friend als englische Variante.
Erstell dir zunächst mal unabhängig von dieser Query eine Query, die die gewünschte Anzahl ermitteln. Diese kannst du dann als Correlated Subquery in deine Query einfügen.
dedlfix.
Hallo portseven,
Wie kann ich es jetzt Ordnen, dass alle Freunde angezeigt werden wo die Freunde von mir am meisten (Freunde hat) und dann absteigend nach unten geht.
Ich nehme an du meinst, du willst die Follower absteigend nach Follower-Zahl geordnet haben?
Tabelle: user_id | follower_id | date
Ich habe keine Beispiel-Daten zur Hand, deshalb können sich Fehler einschleichen, aber das hier sollte liefern, was ich verstanden habe:
SELECT a.follower_id, COUNT(*)
FROM follower a
LEFT JOIN follower b ON b.user_id = a.follower_id
WHERE a.user_id = 1
GROUP BY a.follower_id
ORDER BY COUNT(*) DESC;
LG,
CK