Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Zliczanie komentarzy przy pobieraniu newsa
l0ud
post
Post #1





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Witam, mam taki problem:

2 tabelki mysql (news, comments) utworzone w ten sposób:

  1. CREATE TABLE news (
  2. id int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  3. topic varchar(250) NOT NULL,
  4. contents text NOT NULL,
  5. autoformat tinyint NOT NULL,
  6. datetime char(16) NOT NULL
  7. );
  8.  
  9. CREATE TABLE comments (
  10. id int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  11. username char(50) NOT NULL,
  12. mail char(50),
  13. type tinyint UNSIGNED NOT NULL,
  14. contents text NOT NULL,
  15. datetime char(16) NOT NULL
  16. );


I teraz chcę jednym zapytaniem pobrać newsy wraz z ilością komentarzy dla każdego. Kombinuję w ten sposób:
  1. SELECT COUNT(comments.id),news.id,news.contents,news.topic,news.datetime,news.autoformat
  2. FROM news,comments GROUP BY news.id ORDER BY id DESC


Ale nie działa :/

Proszę o pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
-Wieviór-
post
Post #2





Goście







Cytat(l0ud @ 15.03.2008, 00:54:51 ) *
KCG, myślałem nad tym, ale wydawało mi się to niepotrzebnym utrudnieniem (zwłaszcza w PA). Już równie dobrze mógłbym wywoływać oddzielne zapytanie dla każdego newsa, (pobierające ilość komentarzy) ale wolałbym tego uniknąć...


To jest jednak dobre rozwiązanie. Szczególnie jeśli komentarzy masz dużo. Pomyśl, że skrypt będzie przy każdym wyświetlanym newsie zliczał powiedzmy 10 komentarzy z tabeli, w której będzie jej 10 000 ;]... po prostu przy dodawaniu komentarza dopisuj 1, przy usuwaniu odejmuj 1 i tyle. Możesz nawet pokusić się o triggery ;]
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 00:28