26. april 2007 - 16:05Der er
10 kommentarer og 1 løsning
popular tags
Hej eksperter,
Jeg kommer til at have en masse rækker i min sql tabel, som hver har et felt der kommer til at indeholde 3 tags, fordelt sådan her tag1,tag2,tag3(eller anderledes hvis nemmere.
Det jeg gerne vil have lavet er et script som gør at jeg ud fra alle rækkerne skal kunne hive de 10 mest skrevne tags ud.
Umiddelbart vil jeg sige at hvert ord skal have sin egen række.. Det gør det i hvert fald en del nemmere og hurtigere at trække en topliste ud fra databasen.
feks:
SELECT tag, COUNT(tag) as amount FROM tabel GROUP BY tag ORDER BY amount DESC LIMIT 10
Well, der er også andre ting i samme table, og det er ret vigtigt at tagsne forbliver i samme, da det ellers kommer til at tage for meget sql plads hvis mange kommer til at bruge siden.
Tags'ene kommer nemlig til at blive brugt meget.. rigtig meget.
Så er der ikke en måde man kan smide alle tags i et array, og så plusse hver gang den finder en til. Og i sidste ende hente dem ud som der var flest af?
Det kan du også sagtens gøre! Så skal du lave noget: SELECT ting.*, tags.navn FROM ting INNER JOIN tags_ting ON ting.id = tags_ting.ting_id INNER JOIN tags ON tags.id tags_ting.tags_id WHERE ting.id = 1 <--- Den ting du vil trække ud fra databasen.
Forstod du hvordan det virkede, eller lukker du bare for at lukke spørgmålet?
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.