Hej gruppe.
Jeg har en side (
www.partyworm.dk), hvor jeg har et billede-system. På
billedesystemet kan brugerne tilmelde sig pilene, akkurat som på Night Leif,
DKBN eller hvad de nu hedder (princippet er set før).
På forsiden vil jeg gerne vise hvem de sidst tilmeldte på billederne er, så
der kommer lidt dynamik i siden uden at jeg selv skal ind og ændre noget.
Det er i sig selv også let nok ved følgende SQL-sætning.
SELECT * FROM bdk_galleri_regged ORDER BY nr DESC
Derfra får jeg så mit brugerid og mit billedeid, der fortæller hvilket
billede brugeren er tilmeldt og hvilken bruger det er.
Problemet ligger i at brugerne mange gange tilmelder sig flere billeder på
en gang (måske en 5-6 stykker). Da jeg kun vil vise de sidste 6 tilmeldte
kan det derfor nemt ske at der kun vises en bruger der har tilmeldt sig 6
billeder (lidt kedeligt, da man meget gerne skulle se lidt flere). Derfor
laver jeg en "GROUP BY userid".
Dertil kommer endnu et problem, at flere brugere kan tilmelde sig på et det
samme billeder (altså kan det ske at det samme billeder opstår 3 gange på de
ialt 6 felter, hvilket igen er lidt kedeligt. Lige meget hvad jeg gør syntes
jeg kun at kunne lave "GROUP BY" på enten userid eller pictureid (altså jeg
kan ikke vælge begge, altså at en bruger kun må optræde en gang, og et
billede kun må optræde en gang).
Indtil videre har min løsning været at lave 6 forskellige queryes, hvilket
så absolut ikke er optimalt (da jeg skal sidde og huske hvilket billede der
har optrådt før, ligesom jeg skal huske de brugere der har optrådt før).
Indtil videre ser min forespørgsel derfor således ud (den virker ikke ved
GROUP BY). Er der nogen der kan lige umidddelbart kan se en løsning på mit
problem?
SELECT
bdk_galleri_pictures.nr,
bdk_galleri_pictures.groupid,
bdk_galleri_pictures.pers,
bdk_galleri_groups.disid,
bdk_galleri_regged.voteid,
bdk_galleri_groups.title,
bdk_galleri_groups.dato,
bdk_users.nick
FROM
bdk_galleri_regged,
bdk_galleri_pictures,
bdk_galleri_groups,
bdk_users
WHERE
bdk_galleri_pictures.nr = bdk_galleri_regged.pid &&
bdk_galleri_regged.userid = bdk_galleri_regged.userid &&
bdk_users.nr = bdk_galleri_regged.userid &&
bdk_users.anonym = '0' &&
bdk_galleri_groups.nr = bdk_galleri_pictures.groupid &&
bdk_galleri_pictures.frontpage = '1'
bdk_users.nick
GROUP BY
bdk_users.nr,
bdk_galleri_pictures.nr
Siden hvor den "fejlagtige" query er kan ses på følgende link (et billede
kan optræde 2 gange, det gør det nødvendigvis ikke pga. skiftende indhold,
men det kan altså godt!):
http://partyworm.dk/index.php?show=forside_pics2
Siden hvor jeg laver 6 queryes kan ses på dette link:
http://partyworm.dk/index.php?show=forside_pics
--
Med venlig hilsen
Kasper Johansen
ORDER BY
bdk_galleri_regged.nr DESC
LIMIT
0, 6