Sprawdzanie rok miesiąc |
Sprawdzanie rok miesiąc |
6.02.2019, 13:28:27
Post
#1
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) |
Witajcie,
Mam problem ze sprawdzenie roku i miesiąca i nie wiem czy dobrze kieruje zapytanie aby podmienił ceny w bazie na statystyki. Mój skrypt wygląda tak Skrypt który sprawdza czy miesiąc i rok jest w bazie jeśli jest to uaktualnia ceny w bazie.
A tu formularze które pobierają cenę netto brutto i date i dodają do bazy
to że dodaje do bazy to działa ale nie działa mi UPDATE do bazy nie wiem co jest nie tak. Proszę o pomoc. |
|
|
6.02.2019, 13:31:32
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Sprawdź w dokumentacji co jest drugim argumentem funkcji date.
-------------------- |
|
|
6.02.2019, 13:53:16
Post
#3
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) |
Drugim argumentem funkcji dat() jest timestamp.
I no co muszę zrobić żeby to uzyskać czyli sprawdzanie czy rok i miesiąc jest aktualny |
|
|
6.02.2019, 14:00:30
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Podstawić timestamp.
-------------------- |
|
|
6.02.2019, 14:13:57
Post
#5
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) |
Ma możesz pokazać przykład jak mam to zrobić
|
|
|
6.02.2019, 14:23:26
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
-------------------- |
|
|
6.02.2019, 15:11:48
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 446 Pomógł: 6292 Dołączył: 27.12.2004 |
A zescie sie uczepili bez sensu tego timestamp chlopaka... .Przeciez widac ze wklada tam timestamp...
Przeciez ma ewidentnie inne bledy takie jak: 1) if($rok >= $rok) powaznie? Jesli 2 jest wieksze lub rowne 2? To chyba zawsze jest prawda co nie? 2) data='".date("Y/m", $_POST['data'])."'" A nie robi update z tego powodu. Porownujesz date timestamp do daty w formacie RRRR/MM - no nie ma szans by byly rowne. Temu nie robi update bo nie znajduje rekordu do update. Powinno byc poprostu data='".$_POST['data']."'" 3) No i generalnie pomijajac te nieszczesne warunki w zapytaniu, to ten kod $result = dbquery($link,"SELECT data FROM ".$db_prefix."zamowien WHERE data='".date("Y/m", $_POST['data'])."'"); $data = dbarray($result); $rok=date("Y/m", $data['data']); if($rok >= $rok){ Nie ma zadnego sensu... Pobierasz z bazy date, ktora jest rowna dacie z forma a potem sprawdasz czy jest rowna dacie z forma. Gdzie tu logika? Skoro sie pobralo z bazy dla tego warunku znaczy ze jest rowna no nie? A jesli chciales sprawdzic czy istnieje rekord z ta data i jesli nie to go wlozyc to wystarczy wlasnie sprawdzic obecnosc tego rekordu. ps: przenosze -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.02.2019, 15:31:32
Post
#8
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) |
Pozmieniałem i jeszcze nie jest to tego czego chce bo za każdym razem dodaje mi nową kolumnę w bazie i nie edytuje tej z miesiącem i rokiem 2019/02 taki format chce uzyskać przy sprawdzaniu aby skrypt wiedział ze mamy luty 2019.
Tak teraz wygląda mój kod
W czymś jest jeszcze błąd p.s bo w bazie zapisuje mi w ten sposób 1549463022 |
|
|
6.02.2019, 15:36:28
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 446 Pomógł: 6292 Dołączył: 27.12.2004 |
ZAWSZE sprawdzaj co dostajesz na danym etapie, np
$data = dbarray($result); var_dump($data); Cytat .s bo w bazie zapisuje mi w ten sposób 1549463022 Tak, to jest timestamp tak jak juz mowilem w poprzednim poscie edit: no dobra, zle powiedzialem z tym nie formatowaniem. zapomnialem ze ty tam w input wstawiasz akutalny timestamp, ktory z racji definicji za kazdym razem jest inny wiec o to data='".$_POST['data']."' nigdy nie bedzie prawda. W tym zapytaniu jak porownujesz to musisz w mysql sformatowac data do formatu Y/m oraz $_POST['data'] do formatu Y/m - w celach porownania. Bo teraz jak masz to te dwa czasy moga sie roznich chocby o sekunde i juz nie bedzie porownania -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.02.2019, 15:38:44
Post
#10
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) |
Podaje mi bool(false) czyli nie dociera mi nic z bazy i nie jest sprawdzane.
|
|
|
6.02.2019, 15:43:43
Post
#11
|
|
Grupa: Moderatorzy Postów: 36 446 Pomógł: 6292 Dołączył: 27.12.2004 |
Spraswdz moj EDIT z poprzedniego posta
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.02.2019, 15:47:18
Post
#12
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) |
Robiłem tak jak mówisz ale nadal mam bool(false)
zobacz sam że zmieniłem
|
|
|
6.02.2019, 15:49:56
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 446 Pomógł: 6292 Dołączył: 27.12.2004 |
Wydaje mi sie ze dosc wyraznie napisalem, ze obie strony porownania masz skonwertowac do formaty Y/m. Zarowno po stronie mysql jak i php
ps: No ale tego $rok=date("Y/m", $data['data']); if($rok){ juz miales nie zmieniac. Mialo byc to porownanie co bylo wczesniej. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.02.2019, 15:55:02
Post
#14
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) |
Chodzi o zapis do bazy żeby był 2019/2
|
|
|
6.02.2019, 15:57:03
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 446 Pomógł: 6292 Dołączył: 27.12.2004 |
WHERE data='".date("Y/m", $_POST['data'])."'");
To DATA ktore jest zaraz po WHERE masz przed porownanie skonwertowac do formatu Y/m. Przeciez aktualnie jest jako timestamp wiec nie jestes w stanie bez konwersji tego porownac, czyz nie? manual mysql-> funkcje daty i czasu -> formatowanie timestamp -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.02.2019, 21:03:30
Post
#16
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) |
Zrobiłem coś takiego ale chyba jeszcze nie oto chodziło.
Edit Po przeczytaniu kilkadziesiąt razy zrozumiałem o co chodzi i teraz mi dział tak jak powinno. A zrobiłem to tak
To jest moja funkcja
Ten post edytował pawel06281990 6.02.2019, 22:12:52 |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 10:33 |