Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Reset numerów co miesiąc
DjMazik
post 30.05.2020, 12:54:34
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.05.2020

Ostrzeżenie: (0%)
-----


Dzień dobry!

Mam problem z zrobieniem licznika numerów zamówień, które by resetowały się co miesiąc.
Przykładowo:
Listopad:
pierwsze zamowienie w listopadzie: 1/11/2019
120 zamówienie w listopadzie: 120/11/2019

1 zamówienie w grudniu: 1/11/2019 itp.

Zacząłem z takim kodem, lecz chyba jest cały źle zrobiony.
  1. //pobieram date zlozenia zamowienia z bazy danych
  2. $zapdata=mysqli_query($baza,"SELECT data_zamowienia FROM zamowienia ORDER BY data_zamowienia DESC");
  3. $dane2=mysqli_fetch_array($zapdata);
  4.  
  5. if(isset($dane2['data_zamowienia']))
  6. $m2=$dane2['data_zamowienia'];
  7.  
  8. @$miesiacbd=date_parse_from_format("Y-m-d", $m2);
  9. $numerzap=mysqli_query($baza,"SELECT numer_zamowienia,data_zamowienia FROM zamowienia ORDER BY data_zamowienia DESC LIMIT 1");
  10. $dane3=mysqli_fetch_array($numerzap);
  11. @$nrz=$dane3['numer_zamowienia'];
  12. $i=1;
  13.  
  14. //porównuję datę ostatniego zamowienia z data z dzisiejszego dnia
  15. if($d['month']==$miesiacbd['month'])
  16. {
  17. $ex=explode("/",$nrz);
  18. $nrzam=$ex[0]+$i;
  19. }
  20. else {
  21. unset($ex);
  22. $ex=explode("/",$nrz);
  23. $nrzam=$ex[0]+$i;
  24. }
  25. $idzam=$nrzam."/".$d['month']."/".$d['year'];
  26.  


Proszę o pomoc.

Ten post edytował DjMazik 30.05.2020, 13:00:30
Go to the top of the page
+Quote Post
vokiel
post 30.05.2020, 13:26:04
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Zapisuj sobie oddzielnie nr zamówienia oddzielnie miesiąc (ewentualnie całą datę), potem pobierasz dane dla danego miesiąca tylko.


--------------------
Go to the top of the page
+Quote Post
DjMazik
post 30.05.2020, 13:35:24
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.05.2020

Ostrzeżenie: (0%)
-----


Ale wtedy chyba nie będzie się resetować co miesiąc jeśli np. 30 listopada numer wynosi 401, to w grudniu dalej będzie 400-coś.
Go to the top of the page
+Quote Post
Pyton_000
post 30.05.2020, 13:51:49
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


W wielkim skrócie.

select count(*), data_zamowienia from zamówienia group by DATE_FORMAT(data_zamowienia, "%c-%Y")
Go to the top of the page
+Quote Post
DjMazik
post 30.05.2020, 14:02:11
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.05.2020

Ostrzeżenie: (0%)
-----


I czy mogę teraz jakoś sprawdzić czy to będzie działać? Da sie zmienić datę w xamppie na czerwiec?
Go to the top of the page
+Quote Post
viking
post 30.05.2020, 14:07:05
Post #6





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Data jest systemowa.


--------------------
Go to the top of the page
+Quote Post
DjMazik
post 30.05.2020, 17:12:48
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.05.2020

Ostrzeżenie: (0%)
-----


  1. $data=date("Y-m-d")." ".date("H:i:s");
  2. $d = date_parse_from_format("Y-m-d", $data);
  3. $miesiac=$d['month'];
  4.  
  5.  
  6. $numerzap=mysqli_query($baza,"SELECT count(*) AS 'licznik', data_zamowienia from zamowienia group by DATE_FORMAT(data_zamowienia), '%c-%Y')");
  7. $dane3=mysqli_fetch_array($numerzap);
  8.  
  9. @$nrz=$dane3['licznik']+1;
  10. @$idzam=$nrz."/".$d['month']."/".$d['year'];
  11. $dodaj=mysqli_query($baza,"INSERT INTO zamowienia(id,numer_zamowienia, uzytkownik_id, data_zamowienia, sklad, adres_dostawy, kwota) VALUES (NULL,'$idzam','$id','$data','$lista','$adres','$kwota')");
  12.  


Teraz mam coś takiego i też nie resetuje się co miesiąc.
Zmienia się tylko miesiąc, numer cały czas rośnie.
//edit:
Dziękuję za pomoc, zmieniłem zapytanie na:
SELECT count(*) AS 'licznik', data_zamowienia from zamowienia WHERE month(data_zamowienia)=".$d['month']." GROUP BY DATE_FORMAT(data_zamowienia, '%c-%Y')")
i śmiga

Ten post edytował DjMazik 30.05.2020, 17:13:18
Go to the top of the page
+Quote Post
Pyton_000
post 31.05.2020, 09:34:33
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


tak jeszcze tylko powiem że musisz sprawdzać rok w zapytaniu wink.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 18:14