Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Najpopularniejsze newsy
deha21
post
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Potrzebuję zrobić coś takiego jak "Najpopularniejsze newsy". Ma to polegać na tym, że będzie wyświetlać z bazy np. 3 newsy które mają najwięcej komentarzy. I to umiem zrobić. Problem tylko jest taki, że trzeba zrobić ograniczenie tygodnia czyli newsy które pojawiły się w ciągu ostatniego tygodnia i które mają najwięcej komentarzy. W bazie mam wpisaną datę w formacie 09.03.2010 i pewnie potrzebne jest tutaj porównanie daty newsa z aktualną datą - 7 dni. Ale jak to zrobić?
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Pomyśl więc o zasadzie, której powinieneś przestrzegać zawsze: "Już w pierwszym kroku ogranicz jak najbardziej liczbę wierszy na jakich operujesz". A czym w pierwszej kolejności to będzie? Ano wyrwaniem z bazy rekordów z określonego przedziału czasowego. To one najbardziej ograniczą liczbę wierszy, na których będziesz operował. A więc już na etapie tworzenia pakietu rekordów tabeli to zrób. Zamiast posyłać do grupowania całość tabeli newsów bądź komentarzy poślij tam jedynie te już okrojone według daty (zależnie czy chcesz newsy z danego okresu czy komentarze). Tak więc zapytanie tyczące newsów z okresu od daty $start do dziś oraz max komentarzy mające to będzie coś w stylu:
  1. SELECT n.*, count(k.id) AS ile FROM (SELECT * FROM newsy WHERE DATA > $start ) AS n LEFT JOIN komentarze AS k ON n.id = k.id_newsa GROUP BY n.id ORDER BY ile DESC
Oczywiście sobie dopasuj do potrzeb (IMG:style_emoticons/default/smile.gif)
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: 13.10.2025 - 06:34