03. januar 2010 - 18:45Der er
8 kommentarer og 1 løsning
Join driller
Hej med jer!
Jeg skal lave et udtræk fra databasen med top 20 brugere.
Den ene tabel indeholder al informationen, samt et unikt brugerid (uid), og den anden tabel (users) indeholder brugernavnet tilhørende uid, som jeg gerne vil have trukket med ud.
Jeg har prøvet sådan her, uden held:
$results = db_query("SELECT COUNT(node.nid) as hits, node.uid FROM node LEFT JOIN users ON node.uid=users.name WHERE node.type = 'file' GROUP BY node.uid ORDER BY node.hits DESC");
repox har ret, du har ikke gjort det let at blive hjulpet. Du spoerger "Hvad goer jeg galt?" Men du fortaeller ikke meget om hvad du goer overhovedet. Tre observationer til at begynde med:
(1) Criterium for at hoere til top 20 brugere er vel antal hits. Saa dit query skal velsagtens ende med LIMIT 30.
(2) Du bruger i din query overhovedet ingen oplysninger i tabellen users. Hvis det var meningen at faa navnet paa de top 20 users skulle din query vaere noget i denne henretning:
SELECT COUNT(node.nid) as hits, user.name FROM node LEFT JOIN users ON node.uid=users.uid WHERE node.type = 'file' GROUP BY hits ORDER BY hits DESC
eller hvis du vil have baade uid og name skal foerste linie nok vaere:
SELECT COUNT(node.nid) as hits, node.uid, user.name
Koden er et langt stykke vej gaetvaerk paa grund af manglende oplysninger.
(3) Din php kode fanger ingen oplysninger om antal hits hvilket jeg vil gaette paa at du vil oenske. Du skal nok have saadan noget som:
Det er hurtigt lavet uden at teste noget fordi jeg ikke har meget at teste. Giv dine kommentarer til ovenstaaende. Hvis du allerede har skrevet kode men som fejlelr saa giv os koden og fortael hvad koden giver og hvad koden skulle have givet.
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.