Freundesliste sortierungs Problem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Freundesliste sortierungs Problem

    Guten Abend,
    ich habe ein Problem beim realisieren einer Freundesliste.
    Zu erst einmal habe ich meine Datenbank

    rl_user_fromrl_user_torl_statusrl_date
    user1user212016-02-09
    user2user312016-02-09
    user1user312016-02-09



    Wie sich vielleicht schon selbst erklärt, steht in "rl_user_from" die ID des Users,der die Anfrage gemacht hat und bei "rl_user_to" die des angefragten. "rl_status" und "rl_date" sollten sich auch selbst erklären.
    Nun Frage ich auf dem Profil eines jeden Users seine Freunde ab. Dabei muss ich ja berücksichtigen, dass die ID des Users, dessen Profil man sieht in einer der beiden Spalten steht.
    Meine Abfrage sieht also wie folgt aus:

    SQL-Abfrage

    1. $sql_rl = "SELECT `usr1`.`user_id` AS 'usr1_id',
    2. `usr1`.`user_name` AS 'usr1_name',
    3. `usr1`.`user_avatar` AS 'usr1_avatar',
    4. `usr1`.`user_loginstatus` AS 'usr1_loginstatus',
    5. `usr2`.`user_id` AS 'usr2_id',
    6. `usr2`.`user_name` AS 'usr2_name',
    7. `usr2`.`user_avatar` AS 'usr2_avatar',
    8. `usr2`.`user_loginstatus` AS 'usr2_loginstatus',
    9. `rl`.*
    10. FROM ((`user_relationships` `rl`
    11. LEFT JOIN `users` `usr1` ON ((`rl`.`rl_user_from` = `usr1`.`user_id`)))
    12. LEFT JOIN `users` `usr2` ON ((`rl`.`rl_user_to` = `usr2`.`user_id`)))
    13. WHERE
    14. (usr1.user_id ='".$output_user["user_id"]."' OR usr2.user_id = '".$output_user["user_id"]."')
    15. AND rl_status = '1'
    16. ORDER BY `rl`.`rl_user_from` , `rl`.`rl_user_to`";
    Alles anzeigen
    Das Ergebnis der Query packe ich dann in ein mysql_fetch_array und führe dann eine While-Schleife aus. In dieser Entscheide ich ebenfalls welche User Informationen angezeigt werden (in meinem Fall immer die wo die User ID nicht die des Profils ist).
    Beispiel:

    PHP-Quellcode

    1. if($output_user['user_id'] == usr1_id){
    2. echo '... Infromationen von User 2 anzeigen ...';
    3. } else {
    4. echo '... Infromationen von User 1 anzeigen ...';
    5. }



    Jetzt komme ich endlich zu meinem Problem.
    Ich möchte die Freundesliste nach dem Alphabet sortieren, was mir aber mir Order By nicht gelungen ist, da ja entweder usr1 oder usr2 genommen wird.
    Mein Denkansatz war, 2 SQL Abfragen zu machen und die Ergebnisse zusammen in 1 Array zu machen. Dieses zu Ordnen und dann die Ausgabe zu machen.

    Hat jemand ein Idee, wie ich dies lösen könnte?
  • Union müsste dir dabei eigentlich helfen. Code ist nicht getestet und nur eine Überlegung (!)


    SQL-Abfrage

    1. (select rl_user_to as friend from user_relationships where rl_user_from = $user)
    2. union
    3. (select rl_user_from as friend from user_relationships where rl_user_to = $user)
    4. order by friend
    Damit sollten alle Freunde des Users in der Spalte friend landen und du kannst nach dieser ordnen lassen
  • freeek schrieb:

    Union müsste dir dabei eigentlich helfen. Code ist nicht getestet und nur eine Überlegung (!)


    SQL-Abfrage

    1. (select rl_user_to as friend from user_relationships where rl_user_from = $user)
    2. union
    3. (select rl_user_from as friend from user_relationships where rl_user_to = $user)
    4. order by friend
    Damit sollten alle Freunde des Users in der Spalte friend landen und du kannst nach dieser ordnen lassen
    Danke, funktioniert perfekt so wie ich es wollte