Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Artykuł dnia, Codziennie inny artykuł
plprog
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.07.2008

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


Witam,

Czesto zachodzi potrzeba wyswietlac jakas tresc na stronie, ktora codziennie ma sie zmieniac, czy to jakis artykul, czy utwor muzyczny do pobrania na stronie czy jeszcze cos innego.

Jak pobrac jeden rekord z bazy w ten sposob, aby miec pewnosc ze codziennie bedzie inny ? Przyjmujemy ze liczba rekordow wciaz rosnie (nie znamy ich ilosci), oraz nie znamy poziomu przysrostu rekordow w czasie. Zazwyczaj pobieram jakis artykul, i zaznaczam kolumnie ze jest wyswietlony, nastepny pobieram ze zbioru tych niewyswietlanych, jest to jednak uciazliwe, bo musze sprawdzac czy czasem te niewyswietlane sie nie skonczyly, a jesli tak to musze czyscic wszystkie rekordy i zabawe zaczynac od nowa.

Ma ktos sprytniejsze rozwiazanie tego problemu ?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Vengeance
post
Post #2





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


  1. SELECT id, tytul FROM artykuly WHERE id <> $id_obecnie_wyswietlanego ORDER BY RAND() LIMIT 1


To $id_obecnie_wyswietlanego keszujesz gdzieś w pliku czy bazie, tak aby caly dzien wyswietlal sie tylko jeden wybrany wpis.
Warto też zrobić cache wyniku całego zapytania czy tam wygenerowanego kodu HTML, tak żeby za każdym przeładowaniem nie pobierać
tego "artykułu dnia" skoro i tak zmienia się tylko raz dziennie.

No i pozostaje napisać skrypt odpalany z CRONa o północy, który usunie cache, wylosuje nowy artykuł i znów zapisze cache.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Cytat
Zazwyczaj pobieram jakis artykul, i zaznaczam kolumnie ze jest wyswietlony, nastepny pobieram ze zbioru tych niewyswietlanych, jest to jednak uciazliwe, bo musze sprawdzac czy czasem te niewyswietlane sie nie skonczyly, a jesli tak to musze czyscic wszystkie rekordy i zabawe zaczynac od nowa.

Nie widze w tym nic zlego, tez bym tak zrobil. I czemu uciazliwe? 1 Select i Update wiecej. Wrzucasz to do klasy/funkcji i po problemie.
Go to the top of the page
+Quote Post
Defik
post
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.11.2007

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


Używanie do tego CRON'a jest zupełnie zbędne. Co jeśli nie masz możliwości modyfikowania w nim wpisów ?
Do wykrywania dnia użyj po prostu funkcji odczytującej datę ( np w php date('Y-m-d'); ) i porównaj z tą zapisaną w bazie.
Go to the top of the page
+Quote Post
teutates
post
Post #5





Grupa: Zarejestrowani
Postów: 156
Pomógł: 2
Dołączył: 9.09.2006
Skąd: Londyn/Gdynia

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


Taktyka powinna byc taka:
jak najwiecej cacheowania i jak najwiecej w cronie.... Pracuje w olbrzymim serwisie i jest jedna z roznic dzialania szybko od wolno:) Jesli wykoujesz milion zbednych zapytan to raczej zle swiadczy o programiscie:)

Pozdrawiam
Go to the top of the page
+Quote Post

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: 23.08.2025 - 10:29