![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 8.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam, cześć.
Mam spory problem z 'zaprogramowaniem' strony, aby ODPOWIEDNIO robiła następującą rzecz: Do tabeli (bazy danych) dodawany jest element z wartością z datą PRZYSZŁĄ -> gdy minie ta data, cały rekord znika z tabeli. Tutaj skrócony kod oraz moje solucje które 'próbowałem' stosować.
No i teraz tak. Ja osobiście próbowałem to zrobić w ten sposób, że przerabiałem tak while:
Ta metoda jednak jest zupełnie beznadziejna, bo raz - niby wyniki 'stare' się już nie pokazały, ale nadal ilość stron pozostawała taka sama. A dwa - wyników fizycznie też tam już nie było, ale nadal zajmowały swoje pola - funkcja while nadal je 'wyrzucała', ale dopiero if ich nie wyświetlało. Zmiennych zdefiniowanych później też nie mogę użyć na początku kodu, więc nie mam pojęcia jak to zrobić już w ogóle. Jestem w kropce. Błagam o pomoc ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Musisz wszystko robić na podstawie zapytań do bazy. Czy jest sens trzymać w tej samej tabeli przeterminowane wpisy? Nie lepiej je przenosić lub usuwać? W zapytaniu SQL pobierz tylko te, które mają datę większą od aktualnej. Kodu Ci nie napiszę bo tak z palca to nie pamiętam, ale na pewno sie da i na pewno w necie jest masa przykładów.
-------------------- O! Zimniok :P
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 8.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
Przed chwilą jakichś bzdur napisałem, ale już usunąłem posta. Wracając do tematu:
Nie rozumiem tego, ale coś się rusza.. Kombinowałem teraz wpisując na start chociaż taką linijkę:
ale już tu pojawiają się jakieś dziwne rzeczy. Pojawia się tylko i wyłącznie strona oznaczona przez mnie w paginacji jako 'ostatnia', mimo że wyników jest więcej niż na tą tylko jedną stronę Mimo to próbowałem dalej, żeby zobaczyć co wyjdzie. 'Ulepszyłem' tak samo zmienną $sql2 jak $sql:
Teraz nie dość że wyświetla się tylko tamta jedna ("ostatnia") strona, to jeszcze nie ma na niej żadnych wyników. !!EDIT!!: Ogólnie problemem najważniejszym tymczasowo chyba jest to, że zmieniając w ten sposób $sql2 po prostu wszystkie wyniki 'znikają', nawet gdy zostawię SELECT COUNT tak jak było poprzednio. Stron jest liczba odpowiednia, ale wyników nie ma żadnych na żadnej stronie. Ten post edytował heaton124 10.01.2014, 01:18:23 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Zamiast daty wrzucaj wartosc time() wygasniecia a potem przy zaPytaniu sprawdz czy data w bazie jest wieksza od Obecnego czasu. Funkcje pobierajaca czas wsekundach w mysqlu musisz wygooglac.
-------------------- O! Zimniok :P
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 8.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście wszystko działa. Mimo, że banalny błąd to dla potomnych:
Funkcja "date()" oczywiście nie działa w sql'u. Ja osobiście użyłem CURDATE(), ale opcji jest multum. Dzięki wielkie, MateuszS. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 21:28 |