portseven: Zeige alle Beiträge von user-id Ordne nach Follower

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());
			}
  1. 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.

  2. 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