Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]losowy artykuł/zdjęcie
Forum PHP.pl > Forum > Przedszkole
Larges
Nie proszę o żaden skrypt, ale o czysto teoretyczną podpowiedź z zastosowaniem czego można zrobić wyświetlanie losowego artykułu - zmiana raz dziennie pobieranego z bazy danych.
Dziękuję za podpowiedź/nakierowanie na kurs itd.
sniezny_wilk
Jeśli chodzi o raz dziennie to cache lub cron, było na forum już coś podobnego, jeśli chodzi o losowy to końcówka zapytania SQL:

  1. ORDER BY RAND() LIMIT 1
strife
Witam,

Dokładnie raz dziennie nie uda Ci się zrobić ponieważ, aby wynik został odświeżony użytkownik musi wejść na stronę (punktualne 24 godziny uzyskasz dzięki cron'owi - to taki harmonogram zadań z windowsa). A jak to zrobić od strony programowej, - ano dosyć prosto, najpierw tworzysz zapytanie, które będzie wyciągało losowe artykuły, w tym celu skorzystaj ze słowa kluczowego w SQL, mianowicie - RAND. (Odsyłam do dokumentacji).

Gdy już będziesz potrafił wyciągnać losowy artykuł to musisz przy przy tej operacji zapisać aktualną godzinę, aby móc się odwołać do jakieś wartości i ją porównać, bo przecież nie chcemy cały czas wyciągać co raz kolejnego losowego artykuły tylko raz na 24 godziny. 24 godziny to 86400 sekund. Tą wartość + aktualny czas zapisuj gdzieś po wyciągnięciu artykułu z bazy danych, użyjesz jej aby porównać dwie wartości - aktualną godzinę i godzinę ostatnio wylosowanego artykułu, np.:

Kod
jeżeli [data_wylosowanego_artykulu + 24_godziny < aktualna_data]
losuj()


Słowa kluczowe w php, to time" title="Zobacz w manualu PHP" target="_manual.

Resztę rzeczy znajdziesz na forum.

Pozdrawiam.
Shili
Raz dziennie spokojnie może się udać bez crona. Zapisujesz sobie aktualny dzień i identyfikator wylosowanego artykułu na przykład do pliku i z każdymi odwiedzinami sprawdzasz, czy wpisana data jest różna od tej pobranej przy odwiedzinach. Jeśli tak - zapisujesz nową datę i nowy wylosowany identyfikator.

Co 24godziny równo nie trzeba tego mieć - i tak pierwszy to zobaczy użytkownik, dzięki któremu nadpisanoby plik. A jeśli nikt przez 5 dni nie wejdzie na stronę, to i tak nie zauważy, że artykuł jest ten sam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.