Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql]wykonywanie zapytania MySql okresowo
Dr.VaNs
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 12.10.2007

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


Witam,

pisze sobie wtyczke do CMS'a która będzię mi czyścić automatycznie historie czytanych newsów,


kod sql mam taki:


$zapytanie = dbquery("UPDATE ".$db_prefix."news SET news_reads='0'");

I zabardzo coś mi nie wychodzi z normalnymi metodami okresowymi, może ja coś źle robie, więc nie będę się chwalił tu kodem który nie działa.

Głównie mi o to chodzi aby takie zapytanie wykonywało się co 120 h

Pozdro
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 17)
fuul
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 14.01.2007

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


Polecam użycie crona.
Go to the top of the page
+Quote Post
Dr.VaNs
post
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 12.10.2007

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


A bez crona nie da się?
Go to the top of the page
+Quote Post
Prym
post
Post #4





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

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


jak bez crona to tylko na zasadzie łopatologicznej smile.gif w skrypt który ci czyści te newsy wstawiasz tworzenie i wstawienie czegokolwiek do pliku zapisanie w jakims katalogu na dysku.
i teraz przed skryptem pobierasz date modyfikacji pliku dodajesz do istniejacej daty 120 godzin sprawdzasz czy przekroczyło wzgledem aktualnej godziny jak tak to skrypt winksmiley.jpg moge zapewnic ze działa bo sam uzywałem/am tam gdzie crona nie ma albo z jakiegos powodu wole kodowo panowac nad aktualizacja. oczywiscie data jest sprawdzana za kazdym wejsciem na strone (minus całego przedsiewziecia bo "spowalnia" -niezauwazalnie wczytywanie strony)

acha 120 godzin to jest 60*60*120 = 432000 sekund (sekund*minut*godzin) które dodajemy do daty pobranej z pliku przy pomocy funkcji filemtime()

mam nadzieje ze naprowadziłem na jakies rozwiązanie - wostatecznosci zawsze mozesz robic aktualizowanie wiersza w bazie danych z polem timestamp (mysql) i opierac sie na tej dacie zamiast na pliku z serwerka twój wybór smile.gif powodzenia
Go to the top of the page
+Quote Post
Dr.VaNs
post
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 12.10.2007

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


W sumie też rozwiązanie ale jak się okazało na serwerze jest CRON. Serwer jest z home.pl


Jak mam zbudować plik CRON aby to działało?

Plik cron-weekly.php

CODE

$link = mysql_connect('localhost', 'user', 'pass')

or die('Nie można się poł±czyć: ' . mysql_error());

$result = mysql_query("UPDATE ".$db_prefix."news SET news_reads='0'");

$result = mysql_query("UPDATE ".$db_prefix."articles SET article_reads='0'");



print ('Historia Newsów i Artykułów wyczyszczona.');
mysql_close($link);




?>




Ten post edytował Dr.VaNs 13.10.2007, 12:00:12
Go to the top of the page
+Quote Post
em1X
post
Post #6





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


Przeciez ten plik ma wygladac tak jak zwykly plik php. Polacz sie z baza, wywolaj zapytanie i wszystko. Umiesc ten plik w katalogu glownym na serwerze, a cron go uruchomi raz na tydzien.


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
Dr.VaNs
post
Post #7





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 12.10.2007

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


Zrobiłem ten plik ale coś nie działa, więc chyba zakładam że coś z nim nie tak. Kod jest post powyżej.
Go to the top of the page
+Quote Post
PawelC
post
Post #8





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Zobacz tak
Kod
$link = mysql_connect('localhost', 'user', 'pass')

               or die('Nie można się poł±czyć: ' . mysql_error());

$result = mysql_query("UPDATE '.$db_prefix.' news SET news_reads='0'");

$result = mysql_query("UPDATE '.$db_prefix.' articles SET article_reads='0'");

Dlaczego masz dwie, $result skoro każda robi co innego??
Go to the top of the page
+Quote Post
Dr.VaNs
post
Post #9





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 12.10.2007

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


Niedziała..... tzn jak ręcznie wchodze w plik przez przeglądarke.


co do tych 2 result to przypadek ze mam takie same bo cudowalem roznie z tym,
ale z 2 roznymi tez nie dziala.
Go to the top of the page
+Quote Post
PawelC
post
Post #10





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Kod
$link = mysql_connect('localhost', 'user', 'pass')

               or die('Nie można się poł±czyć: ' . mysql_error());

$result = mysql_query("UPDATE '.$db_prefix.' news SET news_reads='0'");

$result = mysql_query("UPDATE '.$db_prefix.' articles SET article_reads='0'");

A gdzie jest mysql_select_db żeby wybrać bazę danych?? Jest połączenie i zapytanie, ale gdzie jest wybranie bazy danych??
Go to the top of the page
+Quote Post
Dr.VaNs
post
Post #11





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 12.10.2007

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


U fakt nie ma, w sumie chyba dlatego nie działa.


Kod ogólnie po wszystkich poprawkach wygląda:
CODE

$link = mysql_connect('localhost', 'user', 'pass')

or die('Nie można się poł±czyć: ' . mysql_error());

$result = mysql_query("UPDATE ep_news SET news_reads='0'");

$resulta = mysql_query("UPDATE ep_articles SET article_reads='0'");



?>




Tylko nie wiem jak zastosowac tą funkcje od wyboru bazy....
Go to the top of the page
+Quote Post
PawelC
post
Post #12





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Cytat
Tylko nie wiem jak zastosowac tą funkcje od wyboru bazy....

mysql_select_db(nazwa bazy);
Go to the top of the page
+Quote Post
Dr.VaNs
post
Post #13





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 12.10.2007

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


Teraz działa,

dzięki za wszelką pomoc.

Pozdro
Go to the top of the page
+Quote Post
cicik
post
Post #14





Grupa: Zarejestrowani
Postów: 219
Pomógł: 5
Dołączył: 18.07.2006
Skąd: Piekary Śląskie

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


Ja się tylko wtrącę i powiem, że najbliższa wersja mysqla ma umożliwiać tworzenie prac okresowych. Czyli definiujesz zapytaniem, ze raz na ilestam dni mysql ma uruchomić zdefiniowana komende.


--------------------
CMS dla Twojej firmy
Wojciech Małota
Go to the top of the page
+Quote Post
franki01
post
Post #15





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

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


Cytat(cicik @ 14.10.2007, 09:25:30 ) *
Ja się tylko wtrącę i powiem, że najbliższa wersja mysqla ma umożliwiać tworzenie prac okresowych. Czyli definiujesz zapytaniem, ze raz na ilestam dni mysql ma uruchomić zdefiniowana komende.



Byloby ciekawie, ale pewnie wiekszosc serwerow (przynajmniej damrowych) by takie cos blokowala, zeby nie zapchac przypadkiem serwera
Go to the top of the page
+Quote Post
PawelC
post
Post #16





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Cytat(franki01 @ 14.10.2007, 21:32:25 ) *
Byloby ciekawie, ale pewnie wiekszosc serwerow (przynajmniej damrowych) by takie cos blokowala, zeby nie zapchac przypadkiem serwera

Ale powiem Ci że czasami darmowy serwer daje nam więcej niż jakiś płatny, sam się o tym przekonałem. Pożyjemy, zobaczymy jak to z tym będzie.
Go to the top of the page
+Quote Post
cicik
post
Post #17





Grupa: Zarejestrowani
Postów: 219
Pomógł: 5
Dołączył: 18.07.2006
Skąd: Piekary Śląskie

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


Cytat(franki01 @ 14.10.2007, 21:32:25 ) *
Byloby ciekawie, ale pewnie wiekszosc serwerow (przynajmniej damrowych) by takie cos blokowala, zeby nie zapchac przypadkiem serwera


Znając życie to wcale nie będzie największy problem. Większą przeszkodą jest to, że od momentu wydania nowej wersji mysqla do jej zainstalowania na polskich hostingach mija 1,5+ roku.


--------------------
CMS dla Twojej firmy
Wojciech Małota
Go to the top of the page
+Quote Post
franki01
post
Post #18





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

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


Cytat(cicik @ 14.10.2007, 23:08:47 ) *
Znając życie to wcale nie będzie największy problem. Większą przeszkodą jest to, że od momentu wydania nowej wersji mysqla do jej zainstalowania na polskich hostingach mija 1,5+ roku.



Ale jezeli uzytkownicy beda sie nadmiernie czepiac albo przenosic sie na zagraniczne hostingi, to nie pozostanie polskim nic, jak zainstalowac najnowsza wersje, bo inaczej beda stratni..
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 Aktualny czas: 20.08.2025 - 11:18