![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 13.03.2006 Skąd: Rogoźno Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
Czy idzie pobierając dane z tabeli o wartosci TIME porownac z aktualnym czasem i powidzmy kiedy zbliza sie data jej uplyniecia pogrubia oraz wyswietla, formatuje ten tekst z tabeli(chodzi o ta date) na kolor czerwony wywalając stosowny komunikat??
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 240 Pomógł: 17 Dołączył: 28.12.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
idzie
time" title="Zobacz w manualu PHP" target="_manual pobierz dane i porównaj użyj do tego w/w funkcji i w zależności od ilości pozostałego czasu zastosuj kolorowanie Ten post edytował Chrom 4.03.2008, 21:59:50 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 13.03.2006 Skąd: Rogoźno Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
jakiś konkretny przykład jak to zrobić?
|
|
|
-Wieviór- |
![]()
Post
#4
|
Goście ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 240 Pomógł: 17 Dołączył: 28.12.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
kliknij w link tam jest 90% tego czego potrzebujesz co do pozostałego 20% to wystarczy zwykłe if i trochę CSS
|
|
|
--walldeck-- |
![]()
Post
#6
|
Goście ![]() |
Zrobiłem coś takiego:
Ale nie działa mi to prawidłowo, ponieważ gdy zmieniam datę systemową wstecz to powinien pojawić sie else a tak nie jest. Dlaczego? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 13.03.2006 Skąd: Rogoźno Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
Poprawiłem troche kod gdyż chciałem aby wyświetlał mi te numery zleceń ktore powinny dzisiaj wyjechać zgodnie z datą :
Lecz mam tego typu problem: Cytat 03.04.08
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\data.php on line 11 Ilosc zlecen wysylanych dzisiaj: |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 17 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witaj, tak jak porownujesz aktualnie, PHP najprawdopodobniej porownuje to jako ciag znakow, co raczej nie da poxadanego efektu, nie jestem pewny nie mam czasu sie blizej temu teraz przyjzec, jednak jezeli moge doradizc ja bym to zrobil inaczej. Mianowicie,
date wyciagana z bazy traktujesz funkcja strtotime" title="Zobacz w manualu PHP" target="_manual, aktualna date wyciagasz w postaci znacznika czasu i wtedy porownujesz czy wieksze czy mniejsze. przyjzyj sie i przeczytaj dokladnie obydwie funkcje w manualu date" title="Zobacz w manualu PHP" target="_manual, strtotime" title="Zobacz w manualu PHP" target="_manual a jestem calkowicie pewny ze bedziesz w stanie to zrobic sam. Pozdrawiam. ps. tu po Polsku http://php.net.pl/manual/pl/function.strtotime.php http://php.net.pl/manual/pl/function.date.php Ten post edytował maziak 5.03.2008, 00:18:42 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 10.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
@walldeck
Warninga wyrzuca Ci dlatego, że $result nie ma poprawnego formatu. Aby Twój $result był prawidłowym parametrem dla takich funkcji, jak mysql_num_rows() czy mysql_fetch_array(), część kodu powinna wyglądać tak:
lub tak:
Zauważ, że zapytanie przetworzone już raz przez mysql_query() potraktowałeś ponownie tą samą funkcją. Ten post edytował c0cr0ach 6.03.2008, 14:18:18 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 13.03.2006 Skąd: Rogoźno Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zauważ, że zapytanie przetworzone już raz przez mysql_query() potraktowałeś ponownie tą samą funkcją. dzięki c0cr0ach, to faktycznie niedopatrzenie z mojej strony. Lecz nadal wynik nie zwraca mi tego czego bym chciał. Dodałem do bazy zlecenie z datą wysyłki na dzisiaj i mimo wszytko jest 0. Powinno wyróżnić numer tego zlecenia. Jak potraktuje echo ten $result z bazy to mam taka wartość " Cytat Resource id #4 Wartość $num_results ma 0. Zmieniłem już format daty dla $today na (y,m,d) bo było oo na odwrót i jest to samo Wydaje mi sie że problem leży w zapytaniu ponieważ gdy wrzucam to do phpmyadmina zwraca zawsze zero bez wzgledu na to czy wywoluje date czy inny rekord z tej tabeli i porownuje na zasadzie LIKE. Moze ktos rzucic okiem czy to zapytani jest dobrze sformułowane? Ten post edytował walldeck 6.03.2008, 08:32:10 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 10.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
@walldeck, zauważyłem błąd w zapytaniu (też go wcześniej nie znalazłem (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) ) - data_wysylki nie powinna się znaleźć w apostrofach, bo nie będzie wtedy traktowana, jako kolumna. Nie wiem w jakim formacie masz datę w swojej tabeli (chodzi mi o to, czy pole data_wysylki jest typu varchar lub date). Jeżeli chcesz, żeby like zadziałał w tym zapytaniu format zmiennej $today musi wyglądać tak: 'Y-m-d' (przy założeniu, że Twoje pole data_wysylki jest typu date; w takim formacie występuje data w tabelach baz MySQL).
Co do $result, wszystko jest w porządku, z tym że rezultat musisz jeszcze potraktować np. mysql_fetch_array(). Jeśli masz wątpliwości, czy rezultat jest poprawnym zasobem bazodanowym, sprawdzaj to używając funkcji: is_resource(). Jako parametr podajesz w tym wypadku $result. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 13.03.2006 Skąd: Rogoźno Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
Ale rekord (data_wysylki) nie jest w apostrofach:> więc nie wiem co masz na myśli...
Pole data_wysylki jest typu DATE i zgadza sie z formantem $today bo juz to poprawiłem. poproszę o poprawne zapytanie bo nie wiem nadal gdzie leży bład... |
|
|
-Wieviór- |
![]()
Post
#13
|
Goście ![]() |
Na mój gust, nie można użyć LIKE przy polu typu date, no bo niby jak MySQL ma to interpretować? Czy dzisiaj jest "trochę" jak wczoraj? Czy 4 maja jest LIKE jak 7 maja?
Chcesz by pogrubiał jak data się równa, czy jak jest podobna? Możesz np. użyć funkcji month() w zapytaniu, by pokazał z tego miesiąca, week() by z tego tygodnia, możesz ew. zrobić zmienną $data1 = np. 3 dni do przodu od dzisiaj i pogrubiać te, gdzie date =< $data1. Zainteresuj się tym co napisał Ci maziak. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 10.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ale rekord (data_wysylki) nie jest w apostrofach:> więc nie wiem co masz na myśli... Pole data_wysylki jest typu DATE i zgadza sie z formantem $today bo juz to poprawiłem. data_wysylki nie jest już w apostrofach, bo edytowałem mojego wcześniejszego posta. Wieviór ma rację. Jeżeli potraktujesz datę like'iem, wyświetli Ci wyniki tylko dla rekordów tabeli, których wartość kolumny data_wysylki będzie dokładnie równa wartości zmiennej $today. Tak więc trochę mija się to z celem. |
|
|
-Wieviór- |
![]()
Post
#15
|
Goście ![]() |
Wieviór ma rację. Jeżeli potraktujesz datę like'iem, wyświetli Ci wyniki tylko dla rekordów tabeli, których wartość kolumny data_wysylki będzie dokładnie równa wartości zmiennej $today. Tak więc trochę mija się to z celem. Tak stanie się tylko wtedy, gdy jeszcze usuniesz z tego zapytania '%'. Tylko wtedy LIKE zadziała jak zwykły WHERE. EDIT: Widocznie MySQL to ignoruje, spoko ;] Ten post edytował Wieviór 6.03.2008, 18:35:49 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 10.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tak stanie się tylko wtedy, gdy jeszcze usuniesz z tego zapytania '%'. Tylko wtedy LIKE zadziała jak zwykły WHERE. Nawet z '%' działa jak zwykły WHERE, ale bez obaw - nie mam zamiaru się z nikim kłócić. Zaobserwowałem taki efekt podczas testowania prostego skryptu. |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 13.03.2006 Skąd: Rogoźno Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
Poszło bez LIKE. dzięki chłopaki.
Cytat $query = ("SELECT numer_zlecenia FROM zlecenia WHERE data_wysylki LIKE '$today' ");
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 08:49 |