![]() ![]() |
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) i mam też nadzieję, że ktoś mi pomoże z góry dzięki, pozdrawiam |
|
|
|
| -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ę? (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) |
|
|
|
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 |
|
|
|
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
|
|
|
|
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 |
|
|
|
![]() ![]() |
|
Aktualny czas: 31.12.2025 - 00:41 |