![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 3.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Tworzę własny system ogłoszeń. Ale nie wiem jak, zrobić system, który automatycznie kasował ogłoszenia. Tzw. wygasanie ogłoszeń Jeżeli ktoś ma pomysł jak to zrobić, dobrze by było ze skryptem. To z góry dzięki Ten post edytował MS1 17.08.2008, 15:36:06 -------------------- Check this out +++ Extremedomain.pl +++
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 726 Pomógł: 129 Dołączył: 10.01.2008 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Do bazy dodawaj timestamp, wtedy sprawdzaj czy już minęła określona ilość czasu, jeśli tak to kasowanie.
-------------------- Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/ |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 3.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym, żeby to odbywało się automatycznie.
Bo ręcznie to dużo roboty. Chyba, że napisać skrypt który sprawdzał by bazę i rekordy z określonym timestamp, byłyby usuwane. Jaki kod napisać, żeby to działało?? -------------------- Check this out +++ Extremedomain.pl +++
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Napisz normalnie i wstaw taki skrypt w do tzw CRON'a (coś a'la menedżer zadań). Było setki razy na forum.
-------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 3.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dobra, już wiem jak to zrobić.
Nie pomyślałem o timestamp -------------------- Check this out +++ Extremedomain.pl +++
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 566 Pomógł: 18 Dołączył: 23.08.2003 Skąd: Łomża Ostrzeżenie: (0%) ![]() ![]() |
a nie lepiej trzymac wszystkie ogloszenia w bazie (ot tak?) a pokazywac tylko te, ktorych data dodania nie jest mniejsza od jakiegos tam zalozenia czasowego od teraz?
-------------------- *Note: No animals were killed durning the construction of this post.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 3.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Napisałem taki skrypt. Do bazy dodaje w kolumnie 'expire', date, która będzie dokładnie za 21 dni od utworzenia ogłoszenia. Skrypt powinien spradzać i usuwać skrypty, które mają daną expire, większą niż zmienna $teraz CODE $teraz = date("Y-m-d H:i"); $zapytanie = DELETE FROM ogloszenia WHERE 'expire' => $teraz; $idzapytania = mysql_query($zapytanie); ?> Ale nie działa, i nie wiem czy to wina skryptu, czy poprostu założenie jest nie takie jakie być powinno Z góry dzięki Ten post edytował MS1 18.08.2008, 18:22:49 -------------------- Check this out +++ Extremedomain.pl +++
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 17 Dołączył: 26.08.2007 Ostrzeżenie: (10%) ![]() ![]() |
Zrób tak:
I nie musisz tego dawać do CRON'a jak podał Cysiaczek. Wystarczy że wkleisz ten kod na głównej stronie to jeśli jakiś użytkownik będzie wchodził to zak żażdym razem będzie samo się usuwało. Ten post edytował Puzi 18.08.2008, 19:07:06 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 3.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Aha OK. O to mi chodziło.
Tylko wyskakuje mi parse error w trzeciej linijce. Nie wiem o co chodzi, jakaś kropka czy nawias?? -------------------- Check this out +++ Extremedomain.pl +++
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 17 Dołączył: 26.08.2007 Ostrzeżenie: (10%) ![]() ![]() |
Bo ja tylko skopiowałem twoje zapytanie i nie popatrzyłem jak ono jest zapisane
Teraz powinno działać |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 22.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jak juz ktos napisal to lepiej chyba zostawic ogloszenie.
Dodaj kolumne do tablicy z oglszeniami z flaga aktywna nieaktywna. Wtedy zrob sobie skrypt ktory zmienia flage z 1 na 0 jesli minal juz czas ogloszenia, a w select dokladasz jedynie Where flaga=1. Lepiej chyba trzymac sobie 'historie' - nikdy nie wiadomo czy kiedys Ci sie to moze nie przydac do statystyk czy cos tedy. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 3.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
W sumie mógłbym zrobić, tak że zostają w bazie i np zmodyfikować ten skrypt, tak
że usuwa wiadomość dopiero np miesiąc po wygaśnięciu. I mógłbym w takim przypadku, zrobić ponowne aktywowanie ogłoszenia, co by było wygodne dla userów Wystarczy w sumie zmodyfikować, kod który już jest I mam jeszcze jedno pytanie: Jak zrobić by wyświetlała się data w jakiej, ogłoszenie jest jeszcze nadal aktualne. Czyli okres ważności jaki pozostał do wygaśnięcia $pozostalo = expiretime - time() echo '$pozostalo'; I jak to wyświetlić, by było tylko np. ilość dni, albo ilości dni i godzin - bez sekund i minut Z góry dzięki -------------------- Check this out +++ Extremedomain.pl +++
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 22.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chcesz pokazac DD-MM-YY w ktorym wygasnie ogloszenie ?
Uzywaj do przechowywania czasu phpowego timestampa potem latwo to przerabiac. W dokumentacji jest mktime() i date() ktorymi mozesz z timestampem zrobic co chcesz. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 3.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie kiedy wygaśnie, ale ile dni pozostało do wygaśnięcia.
-------------------- Check this out +++ Extremedomain.pl +++
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 22.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
no to easy zapisales w bazie w formacie timestampa informacje kiedy wygasnie ogloszenie.
Teraz odejmij od tej wartosci time() a nastepnie roznice podziel sobie na co chcesz (np /60 = minutach) etc. EDIT: Zakladam ze date zapisujesz w timestampie czyli w sekundach a nie w mysql date. Jesli w date to chyba najprosciej przerobic to na sekundy funkcjami o ktorych juz pisalem i zastosowac rozwiazanie jw. Ten post edytował calebos 19.08.2008, 13:48:19 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 00:45 |