Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: update do bazy danych o określonej godzinie
Forum PHP.pl > Forum > PHP
damianooo
Witam,
Mam następujący problem:

Mam skrypt w którym co niedziele o godzinie 00:00 powinno nastąpić zapisanie danych do bazy danych. Danymi jest 10 pozycji, na które najczęściej oddawano głos w sądzie. Chodzi o to by zrobić Update na tych 10ciu rekordach zmieniajac ich status z 0 na 1.

Robię następującą rzecz:

1) Mam ustawioną datę ( w bazie danych MySql ) np. 5 Sierpień godz. 00:00 i zczytuję ją taki zapytaniem:

  1. SELECT DATE_FORMAT(data1,'%d.%m.%Y.%H.%i.%s') as data1 FROM test WHERE id = (tutaj pewna wartość)
  2.  
  3. $data1 = $row['data1'];


2) Porównuję ustawioną datę i datę obecną. Na obecnej dacie mam ustawiony znacznik czasu tak samo jak w dacie pobranej z bazy, a więc:

  1. $data2 = date("d.m.Y.H.i.s");


3) Jeżeli daty będą równe następuje Update w bazie (zmiana statusu z 0 na 1)

  1. if($data1 == $data2){
  2.  
  3. for(){
  4. UPDATE test SET status = 1 WHERE id = (tutaj pewna wartość)
  5. }
  6.  
  7. itd.
  8.  
  9. }



Wykonuję testy i niestety nie działa. Testy wykonuję na localhoście.
Pytanie czy zadanie robię źle i tym sposobem nigdy mi to nie zadziała, czy zadziała ale dopiero jak umieszczę skrypt na serwerze hostingowym ?

Czy ewentualnie powinienem to robić w inny sposób ?

dzięki
tehaha
Powinieneś tutaj użyć CRON. Ustawiasz Crona, żeby w każdą niedzielę o 00:00 czy kiedy tam chcesz, odpalił skrypt i tyle. Twój sposób zadziała tylko jak ktoś wejdzie na tą stronę tego dnia, a CRON to automat działający na serwerze.
damianooo
ok ... tak też myślałem że trzeba użyć CRONA ... czytałem trochę o tym ale jeszcze tego nie używałem ... rozumiem że powinienem ten skrypt umieścić w takim pliku:

cron-weekly.php

i następnie ten plik wyeksportować na serwer hostingowy .

I już wszystko będzie działać? Czy nie muszę niczego zmieniać w ustawieniach serwera żeby CRON działał, tzn. np. przekazać adminowi serwera , poprosić aby coś ustawił w konfiguracji aby CRON działał ?

I czy w pliku cron-weekly.php wystarczy że pomiędzy znacznikami <?php ?> umieszczę cały kod i będzie działało?

Czy na localhoscie mogę to samo zrobić ?

I jeszcze jedno pytanie . Jak nazwać plik CRONa żeby skrypt wykonywał się co tydzień w niedzielę o 00:00 ... bo ten przykład co podałem to podobno wykonuje się co sobotę ( tak wyczytałem )
markonix
Gdzie Ty takie bzdury wyczytałeś?

CRON to w uproszczeniu dwie rzeczy - adres skryptu (plik) i harmonogram.
Ustawienia harmonogramu to sprawa na serwerze, większość paneli hostigowych pozwala na samodzielne ustalanie zadań cron bez fatygowania administratora.
tehaha
@markonix wyczytał to pewnie na home.pl bo tam tak jest, że nie możesz sam konfigurować crona tylko właśnie taki śmieszny sposób mają. @damianooo normalnie to tak nie działa, w panelu na hostingu np. directadmin ustawia się CRON'a. Na swoim komputerze czyli na localhost zrobisz to tylko jeżeli posiadasz linuxa, na win tego nie zrobisz.

Edit: Małe sprostowanie na win też to zrobisz ale nie CRON'em tylko jest jakiś tam Task Scheduler. W każdym razie na praktycznie każdym hostingu będziesz mógł to bardzo łatwo ustawić sobie w panelu zarządzania.
damianooo
ok to chciałem właśnie wiedzieć ...

dzięki
markonix
Hmm, w takim razie pozostaje poszukać sposoby na cron-daily i sprawdzać czy mamy dzisiaj niedzielę...
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.