PHP: reset čísla každý měsíc

caesar

PHP: reset čísla každý měsíc
« kdy: 25. 08. 2013, 18:27:43 »
Zdravim borci,

potreboval by som v php spravit funkciu, ktora bude kazdy mesiac resetovat cislo objednavky.
konkretne mam cislo objednavky v tomto formate 1310800001
13 - rok
1 - pevne, nemenne cislo
08 - mesiac
00001 - cislo objednavky

kod, ktory sa o toto vsetko stara je tu:
Kód: [Vybrat]
$db = JFactory::getDBO();
 $q= 'SELECT order_number FROM #__virtuemart_orders order by created_on desc LIMIT 1';
      $db->setQuery($q);
      $order_num = $db->loadResult();
       
      $datum = StrFTime("%y", Time()).'1'.StrFTime("%m", Time());
     
      if (strpos ($order_num, $datum) === false){
      $order_num = 0;
      }

      $order_num = $order_num+1;
      if (strlen($order_num)==1){
      $order_num = $datum.'0000'.$order_num;
      }
      else if (strlen($order_num)==2){
      $order_num = $datum.'000'.$order_num;
      }
      else if (strlen($order_num)==3){
      $order_num = $datum.'00'.$order_num;
      }
      else if (strlen($order_num)==4){
      $order_num = $datum.'0'.$order_num;
      }
      else if (strlen($order_num)==5){
      $order_num = $datum.$order_num;
      }
     
return $order_num;

}

ako premyslam, tak premyslam, ale neviem prist na to, aby sa mi $order_num na zaciatku mesiaca vynuloval. pokusal som sa to spravit cez "funkciu" prveho dna v mesiaci, ale toto by mi neriesilo situaciu, keby objednavka dosla nie 1 den, ale napr. 2.
vie mi niekto s tymto prosim pomoct?
« Poslední změna: 25. 08. 2013, 19:55:05 od Petr Krčmář »


Nebylo zadáno

Re:php - reset cisla kazdy mesiac
« Odpověď #1 kdy: 25. 08. 2013, 18:42:10 »
Prvni rada - formatuj to pomoci sprintf nebo neceho podobneho v PHP. Usetris si pulku radku, co tam ted mas...

Re:php - reset cisla kazdy mesiac
« Odpověď #2 kdy: 25. 08. 2013, 19:06:03 »
napisu to "cloveci" reci(neznam presnou strukturu a taky at si trochu potrenujes :) ):

SELECT count(order_id) from orders where month(created) = :aktualni_mesic AND year(created) = :aktualni_rok

a k tomu pak prictes jednicku.
Děkuji za možnost editace příspěvku.

Re:PHP: reset čísla každý měsíc
« Odpověď #3 kdy: 26. 08. 2013, 10:49:51 »
Kosmetické vylepšení:

SELECT (count(order_id) +1) from orders where month(created) = :aktualni_mesic AND year(created) = :aktualni_rok

vrtak

Re:php - reset cisla kazdy mesiac
« Odpověď #4 kdy: 26. 08. 2013, 15:46:37 »
SELECT count(order_id) from orders where month(created) = :aktualni_mesic AND year(created) = :aktualni_rok

count na tyto ucely zasadne nepuzivat - co kdyz je nejaky zaznam pozdeji odstranen apod. max je odolnejsi a nakonec i prehlednejsi. Dale je pri zalozeni logiky na existujicich datech potreba spravne zamykani, to uz je asle trochu nad ramec dotazu.