Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: rand() - wykonanie o określonej dacie i godzinie
Forum PHP.pl > Forum > PHP
Axel9697
Witam.
Mam taki problem, ponieważ muszę napisać skrypt i w nim mam przypuśćmy 20 literek.
I np. 5 dnia każdego miesiąca ma się wylosować 3 literki i one mają być ukazane, aż do następnego 5 dnia miesiąca.
Zrobiłem już wszystko oprócz tego, że dany skrypt ma się odpalać 5 dni miesiąca.
Nawet jak nikt nie otworzy strony to literki mają się wylosować i być dla każdego widoczne.
Proszę o pomoc. Jeśli możecie napiszcie tylko te linijki od odpalania skryptu w dany dzień i o danej godzinie.


  1. $dzien = date(j);
  2. $g = date(H);
  3. $m = date(i);
  4. $s = date(s);
  5. $gms = "$g:$m:$s";
  6. //reszta skryptu
  7. if($dzien == "1" && $gms == "12:00:00")
  8. {
  9. $los=rand(0,count($literka)-1);
  10. }

W tym przypadku wyżej i tak trzeba odświeżyć tą stronę z tym skryptem o godzinie w $gms sadsmiley02.gif

Ps: A i od razu mówię, że jeśli jest taka możliwość, aby to zrobić bez używania crona to proszę o podanie tej możliwości. Bo muszę to zrobić bez crona
fr33d0m
Najlepszy do tego celów jest Cron - jeśli Twój serwer go nie posiada, to dla Twojej informacji istnieją serwisu zawierające cron-online, które mogą odpalić Twój plik 5dnia każdego miesiąca. Jeśli koniecznie nie chcesz używać crona to możesz to zrobić na około poprzez refresh co określony czas na stronie i request do pliku ze sprawdzeniem dnia oraz godziny.
CuteOne
Masz dwie możliwości:
1. Cron
2. Life Cron

Pierwszej nie będę omawiał bo pewnie wiesz co i jak. W drugiej metodzie cronem odpalającym skrypt jest użytkownik. Odpowiedz mi tylko na jedno pytanie po co chcesz losować coś czego nikt nie zobaczy [bo nikt nie odwiedzi Twojej strony?].

Jeżeli jednak zdecydujesz się na odpalanie skryptu poprzez LC zmodyfikuj swój skrypt w ten sposób:

  1. $date = date("Y-m-d"); // możesz oprócz daty dodać czas- wtedy zmień kolumnę cron_date z date na datetime
  2.  
  3. $select = mysql_query("SELECT * FROM life_cron WHERE cron_date <= '{$date}' and cron_status != 2");
  4.  
  5. while($row = mysql_fetch_array($row)) {
  6.  
  7. if($row['cron_status'] == 1) {
  8.  
  9. $los=rand(0,count($literka)-1);
  10.  
  11. mysql_query("UPDATE life_cron SET cron_status = 2 WHERE id = '{$row['id']}");
  12. }
  13. }


struktura bazy:
id(int) | cron_date(date) | cron_status(tinyint lub char(1))
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.