Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Reset numerów co miesiąc
Forum PHP.pl > Forum > Przedszkole
DjMazik
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.
vokiel
Zapisuj sobie oddzielnie nr zamówienia oddzielnie miesiąc (ewentualnie całą datę), potem pobierasz dane dla danego miesiąca tylko.
DjMazik
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ś.
Pyton_000
W wielkim skrócie.

select count(*), data_zamowienia from zamówienia group by DATE_FORMAT(data_zamowienia, "%c-%Y")
DjMazik
I czy mogę teraz jakoś sprawdzić czy to będzie działać? Da sie zmienić datę w xamppie na czerwiec?
viking
Data jest systemowa.
DjMazik
  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
Pyton_000
tak jeszcze tylko powiem że musisz sprawdzać rok w zapytaniu wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.