Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Zadanie wykonane tylko raz o danej godzinie.
KamCiu
post 17.04.2011, 09:59:33
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 23.11.2009

Ostrzeżenie: (0%)
-----


Witam próbowałem napisać skrypt, który o godzinie 24 wybierze losowy element z bazy danych, wpisze do nowej tabeli i zawartość będzie wyświetlał przez kolejne 24 godziny.
W następny dzień o 24 znowu wylosuje i wpisze dane, a następnie będzie wyświetlać nowy element.
Ustawiłem poprzez
  1. if ($godzina == 24){ //pobieraj i wpisuj// }
no ale operacja była wykonywana wielokrotnie przez całą godzinę.
Jak zrobić poprzez php, żeby była wykonywana tylko raz?

Ten post edytował KamCiu 17.04.2011, 10:00:28
Go to the top of the page
+Quote Post
pmir13
post 17.04.2011, 10:05:07
Post #2





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

Ostrzeżenie: (0%)
-----


Musisz wykonać oddzielny skrypt php o określonej godzinie, w środku już nie sprawdzając która jest godzina.
Potrzebujesz wpis w /etc/crontab lub w podobnym pliku w zależności od dystrybucji albo inny program umożliwiający zaplanowanie zadań.
Go to the top of the page
+Quote Post
KamCiu
post 17.04.2011, 10:09:21
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 23.11.2009

Ostrzeżenie: (0%)
-----


Właśnie też kombinowałem z tym poprzez komendę
"10 * * * * wget http://yourdomain.com/file.php > output.log" ale nie działało bo nie zapisywało tego pliku output.log w ogóle.

Ten post edytował KamCiu 17.04.2011, 10:19:12
Go to the top of the page
+Quote Post
pmir13
post 17.04.2011, 10:23:03
Post #4





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

Ostrzeżenie: (0%)
-----


1. Sprawdź czy to podane wget działa poprawnie z linii poleceń
2. Sprawdź uprawnienia, może cron nie może zapisywać tam gdzie chcesz.
3. Uruchomienie raz o północy to 0 0 * * *
Go to the top of the page
+Quote Post
KamCiu
post 17.04.2011, 10:27:06
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 23.11.2009

Ostrzeżenie: (0%)
-----


Ja to obsługuje poprzez Cpanel w którym mam hosting i tam jest wbudowany CronTabs i nie mam dostępu do wiersza poleceń.
Co do uprawnień to jest to możliwe.
Go to the top of the page
+Quote Post
bercow
post 17.04.2011, 10:47:12
Post #6





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

Ostrzeżenie: (0%)
-----


To moze wykonac go raz na 24, przy pierwszym uruchomieniem skryptu (PHP), dodac dzien ostatniego wpisu, i po sprawie

mniej wiecej takie cos
  1. <?php
  2.  
  3. $query = mysql_query("SELECT * FROM tabela") or die('Błąd zapytania'); //zakladam, ze mamy date ostatniego wpisu
  4. $a = mysql_fetch_assoc($query2);
  5. $date = date('Y-m-d');
  6. if ( $date <> $a['date']) {
  7. .........
  8. }
  9.  
  10. ?>


Ten post edytował bercow 17.04.2011, 10:48:14
Go to the top of the page
+Quote Post
KamCiu
post 17.04.2011, 11:33:58
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 23.11.2009

Ostrzeżenie: (0%)
-----


Wykonałem to w ten sposób:
  1. $godzina = date ("H");
  2.  
  3. $dzisiajj=dbquery("SELECT potd_date FROM fusion15534_potd WHERE id = 1");
  4. $dzisiajj_arr=dbarray($dzisiajj);
  5.  
  6. $date = date('d.m.Y');
  7.  
  8.  
  9. $result=dbquery("SELECT photo_filename, photo_datestamp, ta.album_id, album_title, photo_id FROM ".$db_prefix."photo_albums ta ".
  10. "INNER JOIN ".$db_prefix."photos USING (album_id) ORDER BY RAND() LIMIT 1");
  11. $data=dbarray($result);
  12.  
  13.  
  14. if ($date != $dzisiajj_arr['potd_date'] && $godzina == 24) {
  15.  
  16. $fotka=dbquery("UPDATE fusion15534_potd SET potd_date='".$date."', potd_id='".$data['photo_id']."', potd_album_id='".$data['album_id']."', potd_filename='".$data['photo_filename']."' WHERE id=1");
  17. }
  18.  
  19.  


Sprawdziłem ,działa smile.gif

Ten post edytował KamCiu 17.04.2011, 11:41:54
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.06.2025 - 19:53