potřebuju nejak vyresit id_zakazky ;-)
8 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Ahoj Mam takovy mens problem. Potreboval bych nejak vyresit toto... Mam id zakazky ve tvaru 200500001... prvni ctyri cisla je rok a ja bych potreboval jakmile nastane dalsi rok tak aby to bylo zase 200600001 Nejak mi neleze do hlavy jak na to... moc by mi pomohla vase pomoc.
-
jo a to id by se pridavalo... takze 200500156 dalsi a dalsi rok by to skocilo na 200600001
-
to je tak těžký si zjistit aktuální rok?
-
no to sice ne, ale ja potrebuju, ze jakmile naskoci dalsi rok tak aby se to do databaze zapisovalo zase od jednicky a ne aby to pokracovalo dal.
-
Slo by to takhle? if(substr($a["id_zakazky"], 0, 4) < date("Y")) { $id_zakazky = date("Y") . "0001"; } else { $id_zakazky = $a["id_zakazky"] + 1; }
-
jo, to by slo... podle posledni zakazky to kontrolovat
-
Jo, asi by to šlo, ale občas dojde k chybě - to když vytvoří dva uživatelé novou zakázku současně: oba si přečtou číslo poslední zakázky a oba přičtou jedničku. Ten co bude o chvilku rychlejší, tak projde. Tomu druhému se z databáze vrátí chybové hlášení o neunikátním klíči. Jestli tohle nevadí, tak by to šlo použít.
-
Noo, kdyby byl index integer (jako že asi je) tak na něj nastavit autoincrement. Pak se dají použít LAST_INSERT_ID() (to je SQL fce ne PHP), která ti vrátí poslední vložené id. Pak podle roku se zařídit tak, že nastavím počítadlo autoincrementu na hodnotu začínající dalším rokem a jedničkou. Pak se udělá insert a s vysokou pravděpodobností, hraničící s jistotou dostaneš to, co potřebuješ..