Kære udviklere,
Jeg er igang med et projekt på min skole hvor jeg ud fra SQL vil trække nogle værdier ud fra forskellige tabeller. Nu vil jeg lige kort forklare hvad resultat jeg gerne vil have:
Du logger ind på sitet (igennem Facebook API). Dit billede bliver uploaded til hjemmesiden (ved tilladelse). Du kan nu stemme på andre billeder ved "Like" og "Dislike" mulighederne. Dit eget billede kan du ikke stemme på, så den henter kun billeder hvor dit Facebook ID ikke stemmer overens i databasen. Når du har stemt på et billede, kan du heller ikke stemme på det igen. Siden kalder vi for "HotOrNot" - gammel idé, og brugt før
.
Dette skulle ellers være lige til.
Nu kommer problemet såVi henter billederne ud fra databasen, uden problemer. Den kan også adskille resultaterne ud fra dit Facebook ID, så det kun er billeder som ikke kommer fra en selv. Men problemet ligger i at vi også skal have "like" værdierne ud. Selve værdierne er ikke et problem lige nu, men at vi skal adskille sørge for at billeder man har stemt på
ikke kommer med ud. Det virkede (næsten) tidligere, men i det der kommer flere stemmer på samme billede fra forskellige brugere, kan jeg stadig se billeder jeg har stemt på (men som andre også har stemt på).
Jeg har prøvet at udarbejde denne SQL streng:
- SELECT *
- FROM photos
- LEFT JOIN likes ON photos.photos_id = likes.likes_photos_id
- WHERE photos.photos_fid != '1437406354'
- AND (
- (
- likes.likes_fid IS NULL
- OR likes.likes_fid != '1437406354'
- )
- )
- ORDER BY RAND()
- LIMIT 1
Den overstående SQL streng er ud fra mit Facebook ID.
Er der nogle der har en idé om hvordan man "smartest" kan gøre dette?
Mangler der noget kode, eller database struktur så sig endelig til
.
Indlæg senest redigeret d. 21.08.2012 10:02 af Bruger #16025