08. marts 2009 - 08:56Der er
4 kommentarer og 1 løsning
Hent antallet af kommentarer sammen med post
Hej Jeg er ved at omskrive mit cms system og i den forbindelse kunne jeg godt tænke mig, at når jeg henter en liste over blogindlæg, så skal den også returnere hvor mange kommentarer der er til de enkelte indlæg. Jeg har siddet og søgt lidt på nettet, men kan ikke få noget til at virke som det skal. Min forespørgsel ser således ud:
SELECT cms_posts.title,cms_posts.post,cms_posts.date,cms_posts.category_id,cms_posts.id AS post_id,cms_categories.name AS category FROM cms_posts JOIN cms_categories ON cms_posts.category_id = cms_categories.id WHERE cms_posts.published='1' ORDER BY cms_posts.date DESC LIMIT 4
hmm. her skal du passe på da du i en forespørgsel kommer til at bevæge dig over 3 tabeller. Min erfaring er at hvis du kun skal bruge de 4 seneste så lav nogle simple forespørgsler istedet. Lav evt kun din hoved forspørgsel og så lav de andre i din web del når du looper postsne igennem.
Ja det er også det jeg gør nu, men tænkte bare at det ville være nemmere hvis man nu kunne fikse det hele i en forespørgsel, men det kan godt være det ikke er en god løsning.
Ja det kom jeg også frem til, men det lykkedes mig aldrig at få lavet det ordentligt. Jeg kunne kun få den til at returnere en kolonne med det samlede antal at kommentarer, ikke det antal som høre til det pågældende indlæg. Kan du give et eksempel på hvordan det skal gøres? :)
Nå nu har jeg fået lavet en forespørgsel som virker efter hensigten:
SELECT cms_posts.title, cms_posts.post, cms_posts.date, cms_posts.category_id, cms_posts.id AS post_id, cms_categories.name AS category, COUNT( cms_comments.id ) AS comments FROM cms_posts JOIN cms_categories ON cms_posts.category_id = cms_categories.id LEFT JOIN cms_comments ON cms_comments.post_id = cms_posts.id WHERE cms_posts.published = '1' GROUP BY cms_posts.id ORDER BY cms_posts.date DESC LIMIT 4
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.