![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 27.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam taki problem. Otóż potrzebny mi był skrypt php do czasowego usuwania danych z bazy danych SQL. Więc zrobiłem coś takiego:
Z tym że skrypt ten usuwa dane z całej tabeli co 12 godzin, nie o takie rozwiązanie mi chodziło... Chodzi mi o to aby zrobić coś w stylu "Vote Reward System". Czyli gracze głosują na serwer co 12 godzin, na stronkach takich jak http://xtremetop100.com po czym dostają punkty premium za które kupuje się itemki w grze. No ale mniejsza o to. Oto zrzut ekranu z mojego SQL'a : (IMG:http://img837.imageshack.us/img837/7821/sqll.jpg) Wyjaśnienie: strAccountID - ID konta z którego został wysłany głos na serwer. CurrentTime - Jest to czas w którym gracz wysłał głos. vLink - Link od głosu na serwer. (Jest ich parę) NextTime - Następna data kiedy gracz może oddać swój głos. Chodzi mi dokładnie o to, aby skrypt sprawdzał osobno każdego gracza kiedy oddał głos, ponieważ na stronkach typu xtremetop100 głos zapisywany jest na IP (Jeden głos z jednego IP co 12h). Przy tym ustawieniu każdy gracz może oddać głos co 12h, ponieważ co 12h resetowana jest tabela "VoteLog". Problem tkwi w tym że nawet jeżeli gracz nie odda głosu na właściwej stronie dostanie punkty za oddanie głosu. Proszę o pomoc! Z góry uprzejmie dziękuje! Pozdrawiam! ================================================================================ Panowie pomocy! Nie jest to trudne, dodam że resztę mam już zrobioną. Zależy mi jedynie na tym skrypcie. Może jakieś podpowiedzi? Cokolwiek... Ten post edytował Marysza 28.08.2010, 09:52:44 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 22 Dołączył: 6.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
No, po pierwsze php ma w ustawieniach czas na wykonanie skryptu, czyli while(1) nie będzie ci działało.
Jeśli chcsz wywoływać skrypt co jakiś cas to użyj crona co do usuwania robisz skrypt.php w którym masz Kod <?php $odbc = odbc_connect("BAZA_DANYCH", "ID_SQL", "PW_SQL"); odbc_exec($odbc, "DELETE FROM VOTELOG where adddate(CurrentDate(), INTERVAL 12 HOUR) <= now()"); ?> i w cronie ustawiasz aby ten skrypt wykonywał się co 10 min a w skrypcie do sprawdzania czy ktoś może zagłosować czy nie sprawdzasz czy jego id znajduje się w tabelce VOTELOG Pozdrawiam Ten post edytował fander 28.08.2010, 11:38:15 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 27.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Masz na myśli cos takiego?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
eee... zadałeś pytanie jak odpalać funkcje, która usunie z tabeli wpisy co 12h, więc powiedz mi gdzie w Twoim skrypcie jest na to odp?
ps. wygoogluj sobie coś na temat cronjobów, poszukaj(jeżeli nie masz na serwerze) darmowego crona i odpalaj skrypt usuwający tą tabelę. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 22 Dołączył: 6.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak kolego z tym że tutaj nie potrzebujesz crona, dlaczego ? ponieważ sprawdzasz przy "zagłosowaniu" czy w przeciągu określonego czasu nie było już oddanego głosa na danym portalu. Jeśli w przeciągu 12h był już oddany to wyświetlasz komunikat o tym że nie można zagłosować, jeśli nie to aktualizujesz votelog.
Możesz to tak rozwiązać, ale w tym rozwiązaniu nie potrzebujesz do tego crona. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:50 |