![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 31.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chciałbym za Waszą radą stworzyć skrypt działający na zasadzie określonego czasu (dla przykładu allegro wystawiasz aukcje z data i ustalasz datę zakończenia aukcji - w momencie kiedy jest już data zakończenia jest zablokowana możliwość np. podbijania ceny i wskakuje status zakończona). Chciałbym wykonać podobny skrypt działający na zasadzie - user dodaje wpis i wpis jest ważny przez 5 dni potem wpis sie np. kasuje lub jest archiwizowany. Zakładamy ze dodano np. 40wpisów (przez tego samego usera lub innego) każdemu została narzucona data usunięcia wpisu + 5 dni. Jak utworzyć taki skrypt który sobie z tym poradzi? Czytałem coś o Cron ale szczerze mówiąc nie wiem jak to rozwiązać. Proszę o pomoc Z góry dzięki (IMG:style_emoticons/default/smile.gif) Ten post edytował loginphp 28.08.2009, 18:19:37 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
W bazie dodajesz kolumne DATE + 5dni i sprawdzasz w skrypcie czy podana tam data jest mniejsza od aktualnej.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 31.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
OK ale np. ktoś ma usunięcie wpisu o np.01:00 i chce żeby się ten skrypt wykonał.
Jak skonfigurować wywołanie się skryptu sprawdzającego ? Jak napisać w php taki skrypt ktory spr usera jego date dodania i date zakonczenia i kiedy warunek jest spełniony czyli mija data zakończenia i np wykonuje dla tego przypadku skrypt który usuwa wpis. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 403 Pomógł: 68 Dołączył: 20.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
jeżeli twój serwer obsługuje CRON to jesteś w domu, piszesz skrypt który pobiera z bazy wszystkie rzeczy, które mają się wykonać o aktualnej godzinie +-5 minut, następnie je wykonujesz i tyle. Taki skrypt podpinasz pod crona, który będzie go uruchamiał np. co godzinę/15 minut czy jak tam chcesz i tyle, a w bazie dajesz pole datetime z wartością oznaczającą kiedy zdarzenie ma się wykonać.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 221 Pomógł: 14 Dołączył: 11.03.2009 Skąd: Lubaczów Ostrzeżenie: (0%) ![]() ![]() |
W bazie dodajesz kolumne DATE + 5dni i sprawdzasz w skrypcie czy podana tam data jest mniejsza od aktualnej. a ja sie glowie od kilku jak rozwiazac ten problem - bo mialem podobny - i nawet probowalem rozbic date a tu takie proste rozwiazanie:-D (IMG:style_emoticons/default/guitar.gif) dzieki wielkie Wicepisk - ten temat jak i ta odp. spadly mi z nieba :-D loginphp : tez sie nad tym zastanawialemi chetnie poslucham odpowiedzi. Ja myslalem zrobic tak : zrobic taki skrypt ktory updatuje dane w bazie i dorzucic go do glownej strony i do podstron w ten sposob jak ktos wejdzie na ktoras Twoja strone to skrypt sie wykona czyli sprawdzi w bazie danych czas i date czy sie zgadza, uaktualni je i wyswietli zaktualizowane dane;-) pozdrawiam |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 31.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wszystkim za odpowiedzi (IMG:style_emoticons/default/smile.gif)
tez sie nad tym zastanawialemi chetnie poslucham odpowiedzi. Ja myslalem zrobic tak : zrobic taki skrypt ktory updatuje dane w bazie i dorzucic go do glownej strony i do podstron w ten sposob jak ktos wejdzie na ktoras Twoja strone to skrypt sie wykona czyli sprawdzi w bazie danych czas i date czy sie zgadza, uaktualni je i wyswietli zaktualizowane dane;-) hmm rozwiązanie ciekawe ale które "lepsze" z użyciem Crona (serwer obsługuje) czy Twój pomysł ? Macie jakieś argumenty ZA i PRZECIW ? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 403 Pomógł: 68 Dołączył: 20.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
za cronem przemawia to że wszystko się wykona nawet jak nikt nie wejdzie (IMG:style_emoticons/default/smile.gif) . Przy wysyłaniu czegoś "na godzinę" jest to o tyle dobre że ja np. będę chciał wysłać coś o 04:00 rano ale koniecznie o 4 (+- 5 minut), i czy wtedy twój serwis mi to zagwarantuje?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 221 Pomógł: 14 Dołączył: 11.03.2009 Skąd: Lubaczów Ostrzeżenie: (0%) ![]() ![]() |
hmm
cos nie idzie z tym dodawaniem do daty - tzn. jak zrobie:
to mi w jakas_data daje poprawny wynik ale tylko w pierwszym rekordzie a co zrobic zeby updatowalo wszystkie rekordy z tabeli zeby dawalo ten wynik: jakas_data + 3 ? pozdrawiam |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Daty tak nie dodajesz (IMG:style_emoticons/default/smile.gif) Lepiej zobacz składnię ADDATE (IMG:style_emoticons/default/winksmiley.jpg) A wiesz czemu? Bo skąd ma baza wiedzieć czy chcesz do tej jaką podałeś dodać 3 minuty, 3 dni czy 3 lata?
Ten post edytował thek 28.08.2009, 22:37:22 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 221 Pomógł: 14 Dołączył: 11.03.2009 Skąd: Lubaczów Ostrzeżenie: (0%) ![]() ![]() |
Daty tak nie dodajesz (IMG:style_emoticons/default/smile.gif) Lepiej zobacz składnię ADDATE (IMG:style_emoticons/default/winksmiley.jpg) A wiesz czemu? Bo skąd ma baza wiedzieć czy chcesz do tej jaką podałeś dodać 3 minuty, 3 dni czy 3 lata? no ale pierwszy rekord mi updatuje wiec chyba wie;-) nie wiem tylko dlaczego nie updatuje wszystkich rekordow tylko pierwszy |
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
No cóż... Wszystko zależy od skryptu. Brak określenia wiersza sprawia, że ta operacja powinna się wykonać dla każdego rekordu... No chyba że juz po pierwszym rekordzie następuje błąd. Baza zawsze wykonuje swoje działania aż do napotkania błędu. Jeśli miałeś 10 dodań do bazy a błąd wystąpił w 6 to wcześniejsze 5 się wykonało, ale przy błędnym zapytanie zostało przerwane. Stąd też wniosek, że pierwsze zapytanie przeszło sitko, ale drugie juz było błędne na tyle, że baza powiedziała: "Temu zapytaniu już podziękujemy..." (IMG:style_emoticons/default/winksmiley.jpg) Wiesz jakie może to być wkurzające gdy robisz UPDATE całej bazy i Ci nagle wyskoczy błąd, po przejściu kilku tysięcy rekordów, bo akurat trafiło się na nieprawidłową wartość w kolumnie... Ja póki co miałem farta i takie cyrki się jedynie na localhoście zdarzały w fazie testowej. Po użyciu właściwych funkcji wbudowanych w silnik bazy nie powinno jednak byc niejednoznaczności i problemów (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 221 Pomógł: 14 Dołączył: 11.03.2009 Skąd: Lubaczów Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 15 Dołączył: 17.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
A dlaczego nie stosujesz znacznikow czasu ?
Postepowanie z nimi jest duzo prostsze i uzyteczniejsze. Poczytaj sobie o znacznikach czasu i zobacz o ile prosciej bedzie operowac na bazie i pozniej reprezentowac dane lub przeliczac rozne wartosci ... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 08:41 |