Pinnwannd erstellen

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Pinnwannd erstellen

    Hallo,
    ich versuche gerade für ein Schulprojekt eine Pinnwand (ähnlich wie bei Facebook) zu erstellen, ich weiß aber leider nicht genau wie ich das machen soll. Ich bekomme jedes mal ein falsches Ergebnis.Und zwar möchte ich das, User nur ihre eigenen Pinnwand Beiträge und die von Freunden sehen.

    Meine Datenbanken:

    post ( Hier werden die Pinnwand einträge gespeichert)
    ###################
    id - email - inhalt - datum
    ###################


    friends ( Hier werden die Freundschaften gespeichert)
    ##################################
    id - friends - email_absender - email_empfanger
    ##################################

    ( friends steht für den Status 0 = keine Freunde , 1 = Freundschaftsanfrage, 2 = Freunde, email_absender ist die Person die die Freundschaftsanfrage gestellt hat)

    login ( Hier sind alle Profil Sachen gespeichert)
    ################################
    id - vorname - nachname - email - profilbild
    ################################


    Jetzt weiß ich leider nicht wie ich die Abfrage schreiben muss, ich hoffe ihr könnt mir weiterhelfen

    Mit freundliche Grüßen
    CobraDE
  • Eins vorweg, ich persönlich muss immer weinen, wenn ich Strings als Schlüssel sehe, nutze doch bitte die IDs als Primär/Fremdschlüssel, wenn du sie schon hast ;)

    Der Query, um die Posts von Freunden zu kriegen, müsste ungefähr so aussehen (ungetestet):

    Source Code

    1. select * # nur das auswählen, was du auch brauchst
    2. from post p
    3. join friends f on f.email_empfanger = p.email
    4. join login l on l.email = f.email_absender and friends = 2
    5. where l.email = ? # geht natürlich auch mit der ID
    6. order by datum


    Um auch die eigenen Beiträge auszulesen finde ich grad keine andere Lösung als union. Müsste ungefähr so aussehen (auch nicht getestet):

    Source Code

    1. ( select * # nur das auswählen, was du auch brauchst
    2. from post p
    3. join friends f on f.email_empfanger = p.email
    4. join login l on l.email = f.email_absender and friends = 2
    5. where l.email = ? # geht natürlich auch mit der ID
    6. order by datum)
    7. UNION
    8. (select *
    9. from post
    10. where email = ? # email des users, oder natürlich die ID ;)
    11. order by datum )
    Display All