Autor Zpráva
Ivan
Profil *
Zdravim, mohli by jste mi poradit, chtěl bych v aplikaci udělat číslování objednávek, coč by mělo být ve formátu rok + autoincrement (takže vlastně například 20051, 20052, 20053 atd...). To by pro mě celkem ještě problém nebyl, ale narážím na problém vždy s příchodem nového roku a pořadové číslo za rokem dostat zase od jedničky...
Možná by se mi to nakonec povedlo nějakou funkcí, ale asi bych jí dělal hrozně složitě. Díky za radu
llook
Profil
Nevím, jestli chápu problém. Jde o to, napsat funkci která zvýší první čtyřčíslí (rok) o jednu a přidá za něj jedničku? To by mohlo být nějak takhle:

function incrementYear($year) {
return ((int) (substr($year, 0, 4) + 1).'1');
}

Ale jak by řekla Dolly: "Je to prasárna". Lepší by bylo uchovávat zvlášť rok a zvlášť číslo objednávky. Slinkovat to až na výstupu.
Ivan
Profil *
No, tak to právě ono neni. Zkusím to jinak.. Číslování bude probíhat následovně: 20051, 20052, 20053 atd... To znamená rok a k tomu pořadové číslo. A s příchodem nového roku se má změnit ne jen číslo roku, ale i to číslování začne opět od jedničky.

Takže příklad:
2005159
2005160
2005161
20061
20062
20063
atd...

Takovýto formát čísla se bude ukládat do DBA...
Ivan
Profil *
No, tak jsem to vytvořil následovně, ale zdá se mi to fakt zbytečně hrozně složitý...

function CisloObjednavky($posledni) {

$rok = substr($posledni, 0, 4);
if ($rok != date("Y")) {
$rok = substr($posledni, 0, 4)+1;
$increment = "0";
} else { $rok = date("Y");
$increment = substr($posledni, 4, 4);
}
return "$rok". $increment+1;
}

$vypis = mysql_fetch_array(mysql_query("SELECT cislo FROM objednavky ORDER BY cislo DESC LIMIT 1"));

echo CisloObjednavky($vypis[cislo]);

Pokud by jste věděli jak tohle řešit jednodušeji, byl bych vám vděčný...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0