![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 3.05.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
chciałbym napisać skrypt, który będzie wyświetlał cytat (obrazek, kolor tła, cokolwiek) przez 24 godziny, po czym będzie się zmieniał na inny (np. o północy) w sieci można znaleźć wiele skryptów obsługujących cytaty, ale w większości przypadków wybierany jest losowy cytat i po odświeżeniu strony jest już inny - takie coś mnie nie interesuje założenia: - baza danych jest - ilość cytatów x (tzn. dowolna) - codziennie wyswietlamy 1 cytat - po przejściu całej kolejki (czyli po x dniach) zaczynamy znów od pierwszego - żeby nie było errorów żadnych gdy zmienimy liczbe cytatów (x) - musi to chodzić dosyć szybko, żeby nie obciążać zbytnio serwera zaznaczam, że nie chodzi mi o gotowy skrypt, ale o jakiś pomysł na to, bo ja nie mam konceptu, znaczy mam, ale nie wiem, czy to jest najszybsze i najprostsze rozwiązanie wymyśliłem, że można dla każdego x (czyli dla każdego cytatu) na samym początku wygenerować (i przyporządkować) kolejne daty począwszy od dnia dzisiejszego do dnia dzisiejszego + x dni, a gdy kolejka się skończy, czyli po x dniach, znów zrobić to samo i przy każdym wywołaniu strony przez przeglądarkę sprawdzić, czy w bazie istnieje wpis (cytat) z dzisiejszą datą i go wyświetlić, a jeśli nie istnieje, to wygenerować daty od początku mam nadzieję, że da się zrozumieć to, co napisałem ![]() i mam też nadzieję, że ktoś mi pomoże z góry dzięki, pozdrawiam -------------------- dżentelmen to mężczyzna, który potrafi grać na akordeonie, ale tego nie robi
|
|
|
-Guest- |
![]()
Post
#2
|
Goście ![]() |
Heja,
ja bym to zrobił tak: 1) kolumna w tabeli z cytatami data_wyswietlania; 2) pobieram sobie z tabelki losowy cytat, z puli tych, które nie mają daty; 3) sprawdzam, czy dzisiejsza data nie pasuje do żadnego cytatu; 4) jeśli nie pasuje, pobieram i po pobraniu zapisuje sobie do bazy datę dla cytatu; 5) jeśli nie ma wolnych cytatów (bez dat) robię coś tam (np. usuwam wpisy dat lub wywalam komunikat); pomogłem trochę? ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 3.05.2004 Ostrzeżenie: (0%) ![]() ![]() |
no w zasadzie napisałeś coś podobnego do tego co ja napisałem, ale czy to jest szybkie? bo te cytaty to ma być dodatek, żeby nie było tak, że wygenerowanie cytatu zajmuje 90% czasu generowania całego skryptu
Ten post edytował wudz 3.12.2005, 13:02:16 -------------------- dżentelmen to mężczyzna, który potrafi grać na akordeonie, ale tego nie robi
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 476 Pomógł: 1 Dołączył: 5.11.2005 Skąd: Bieruń city Ostrzeżenie: (0%) ![]() ![]() |
tabela cytaty:
timestamp | cytat a potem za kazdym razem gdy dodajesz cytat dajesz timestamp wiekszy o 3600*24 od poprzedniego, a dzisiejszy cytat wybierasz WHERE timestamp = teraz_data (dla godziny 00:00:00 albo 01 [nie pamietam teraz]) aby szło od nowa gdzy sie skoncza cytaty to powiekszasz wszedzie timestamp o 3600*24*ilosc_cytatow_w_bazie Ten post edytował dtb 3.12.2005, 14:45:03 -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 3.05.2004 Ostrzeżenie: (0%) ![]() ![]() |
dzieki za pomoc, nie miałem okazji sprawdzić tego jeszcze, sprawdzę jak będę mieć trochę czsu i napiszę jk mi poszło, jeszcze raz dzięki za pomoc
-------------------- dżentelmen to mężczyzna, który potrafi grać na akordeonie, ale tego nie robi
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
wybieraj poprzez random() z taki samym seed - np. ((dzień + rok) * 15 ) / miesiąc. Powinien się codziennie wybierać inny, ale w obrębie jednego dnia ten sam.
Ten sposób jest dużo prostszy od poprzedniego, aczkolwiek nie jest pewne, że wszystkie cytaty będą wyświetlnoe. I jest troszkę sprzeczny z wymaganiami. Możesz też np zrobić: Cytat na dziś id = (rok * 1000 + miesiąć * 10 + dzień) % x; albo coś w tym stylu. Ale to ma te same wady co poprzedni sposób. Ten post edytował Jabol 3.12.2005, 22:18:11 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.04.2025 - 08:33 |