Autor | Zpráva | ||
---|---|---|---|
Tomasekkk Profil * |
#1 · Zasláno: 19. 3. 2011, 10:05:24
Ahoj, mohl bych se zeptat, jak by bylo vhodné řešit generování čísel objednávek dle určitého roku? Chtěl bych v letošním roce generovat čísla objednávek takto:
RR050000X - tak tedy např. 110500001,110500002,... v roce 2012 by to vypadalo takto 120500001 ... Tyto hodnoty bych rád zapisoval do MySQL, nevím jak to nejlépe vyřešit. Pokud bych zapisal do mysql do prvni objednavky 110500001 a pak při dalších objednávkách jen přičítal 1, fungovalo by to, bohužel v roce 2012 by se stále přičítalo k číslu 1105... máte nějaký tip jak to nejlépe řešit? Např. zapsat si do mysql do další tabulky aktuální rok a do dalšího sloupečku přidávat aktuální číslo objednávky a potom v roce 2012 ověřit jen podle date() zda-li není jiný rok než je zapsán v databázi a vytvořit jej? Nebo existuje přímo nějaký příkaz, abych toto mohl řešit přímo při zápisu (INSERT) přes mysql_query()? Děkuji za každou radu |
||
TomasJ Profil |
#2 · Zasláno: 19. 3. 2011, 10:36:36 · Upravil/a: TomasJ
Tomasekkk:
Ano jeden tip by byl. if($Conn = mysql_connect("Host","User","Password")) { mysql_select_db("Database"); $sql = mysql_query("SELECT * FROM objednavky"); $rows = mysql_num_rows($sql)-1; for($i=0;$row=mysql_fetch_array($sql);$i++) { if($i<$rows){continue;} else{$lastRow = $row['kod'];break;} } mysql_close($Conn); } $Kod = Date("y").050000; $lastChar = $lastRow[strlen($lastRow)-1]; $Kod.=$lastChar+1; |
||
Tomasekkk Profil * |
#3 · Zasláno: 19. 3. 2011, 11:30:58
Mockrát děkuji za názorný příklad, který jsem ani nečekal, asi jej taktéž použiju. A já to dělal tak složitě :-) Děkuju
|
||
meris Profil |
#4 · Zasláno: 19. 3. 2011, 13:47:46
[#1] Tomasekkk
Nejsem si jist co přesně chceš? Jak se mají objednávky číslovat? Mají s každým rokem začínat od jedné, třeba takto 110500001, 110500002, 110500003...a další rok 120500001, 120500002, 120500003... Nebo mají pokračovat 110500001, 110500002,...,110500037, a další rok 120500038, 120500039, 120500040... A další věc je, zda má mít kód objednávky stejný počet znaků, nebo májí být vždy zadány čtyři znaky mezi RR05xxxx.(číslo objednávky) a ty čtyři znaky mají jiný význam? Řešení popsané zde: [#2] TomasJ nebude generovat unikátní kódy objednávek, v případě, že objednávek bude více než deset ročně. $Kod = Date("y")."050000"; // chápu li správně, že zde je spojení dvou řetězců, měl by být obalen úvozovkami $lastChar = $lastRow[strlen($lastRow)-1]; $Kod.=$lastChar+1; Bude se generovat: 110500001 110500002 110500003 110500004 110500005 110500006 110500007 110500008 110500009 1105000010 110500001 |
||
Tomasekkk Profil * |
#5 · Zasláno: 19. 3. 2011, 19:09:54
No zatím jsem to pořešil jak jsem měl, prostě mám v databázi zapsaný rok a poslední číslo objednávky, když je dle date("Y") jiný rok, tak mi vytvoří nový záznam s novým rokem a číslem 1, pak jen přes script generuju čísla objednávek. :-) Tak jsem to používal vždycky, myslím si, že to bude asi nejvhodnější ... I tak děkuju ...
|
||
Časová prodleva: 13 let
|
0