Den skal hente TOP 10, med flest stemmer i mit hot or not system
Vi siger f.eks der er 2 personer der har stemt på billedet "hej.jpg". Den ene person gav den karakteren fra (0-5) 3 og den anden person gav den 2
Så har jeg 2 felter i min tabel (hotornotstem) den ene hedder ialt, og den anden stemmer.
Nu vil stemmer have 5, da den ene person stemte 3 og den anden 2 ( 3+2=5)
i alt er så 2, fordi der er 2 der har stemt.
Men jeg får hele tiden karakteren (5.00) ud fra denne. Hvorfor?
SELECT (stemmer / ialt) AS gns, ialt AS stemmerialt, brugere.brugernavn AS navnet, billedgalleri.billede AS billed FROM hotornotstem, brugere, billedgalleri WHERE billedgalleri.brugernavn = brugere.brugernavn AND brugere.koen = 'd' ORDER BY gns DESC LIMIT 0,10
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Jeg tror der er noget galt med din join. Hvordan hænger hotornotstem sammen med billedgalleri? Med "billedid" ? For så ville jeg lave query'en om til:
SELECT (h.stemmer / h.ialt) AS gns, h.ialt AS stemmerialt ,b.brugernavn AS navnet ,g.billede AS billed FROM hotornotstem AS h INNER JOIN billedgalleri AS g ON h.billedid = g.billedid INNER JOIN brugere AS b ON g.brugernavn = b.brugernavn WHERE b.koen = 'd' ORDER BY gns DESC LIMIT 0,10
Den skal hente dem med top 10 karakter fra "hotornotstem". Hvor den skal ind og finde brugernavnet i "billedgalleri". Så skal den finde "navn" i "billedgalleri" og tjekke om "koen" er sat til "d" i tabellen "brugere"
hotornotstem tabellen har jo kolonnen "billed" så skal den ind i "billedegalleri" tabellen og tjekke om "billed" fra hotornotstem er "billede" i "billedgalleri". Så skal den finde "navn" i billedgalleri og tjekke om kønnet enten er p eller d i tabellen brugere.
SELECT (h.stemmer / h.ialt) AS gns, h.ialt AS stemmerialt ,b.brugernavn AS navnet ,g.billede AS billed FROM hotornotstem AS h INNER JOIN billedgalleri AS g ON h.billed = g.billed INNER JOIN brugere AS b ON g.brugernavn = b.brugernavn WHERE b.koen = 'd' ORDER BY gns DESC LIMIT 0,10
"Men jeg får hele tiden karakteren (5.00) ud fra denne. Hvorfor?" Er felterne i din db sat som integers eller floats?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.