|
![]() |
#1 |
Registered User
Datum registracije: Oct 2010
Lokacija: Rijeka
Postovi: 48
|
Reset auto incrementa na novu godinu (PHP MYSLQ)
Pozdrav, slazem neku jednostavnu aplikaciju koja bi mi bila od pomoći ali sam naletio na mali problem. Zanima me na koji način napraviti da se broj neki resetira na novu godinu. Recimo ako tablica racun izgleda ovako: Code:
racun (innodb) ID(AI i PK) BROJ_RACUNA GODINA 1 1 2014 2 2 2014 --- 3 1 2015 Code:
<?php echo $broj_racuna . "/" . $godina E sad ne znam kako napraviti da se broj racuna resetira na novu godinu... mislio sam slozit MysQL scheduel statement al ne znam dal postoji alternativa. Hvala
__________________
FX6300+, Radeon R7 260X 2GB, RAM: 16Gb |
![]() |
![]() |
![]() |
#2 |
Premium
Datum registracije: Sep 2007
Lokacija: Velika / Osijek
Postovi: 1,442
|
$godina
Ako je imaš negdje zadanu ručno, usporedi samo date('o'). Ako je različito update varijeble i pošalješ SQL za reset AI.--> PHP kod:
Ako je imaš negdje zadanu ručno, usporedi samo date('o'). Ako je različito update varijeble i pošalješ SQL za reset AI. |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
#3 |
Registered User
Datum registracije: Oct 2010
Lokacija: Rijeka
Postovi: 48
|
pozdrav, ovo sto sam ja napravio ECHO u primjeru to je zapravo ECHO iz baze znaci bilo bi to Code:
echo row['godina'] . "/" . row[broj_racuna] a u stupac godina bi se popunjavao iz varijable neke koja bi echoala trenutnu godinu... tako da taj dio nije problem. Samo je problem to da se auto increment resetira na novu godinu, a varijabla sa godinom ce bit 2015 100% .. jer ide direktan output trenutne godine. Mozda sam malo pojasnio sto zelim, nadam se ![]()
__________________
FX6300+, Radeon R7 260X 2GB, RAM: 16Gb |
![]() |
![]() |
![]() |
#5 |
Registered User
Datum registracije: Oct 2010
Lokacija: Rijeka
Postovi: 48
|
Hmmmm prvo nisam skuzio sta mislis... al sad mi je pala ideja na pamet, ne znam ako je to isto to što i ti kažeš ![]() Znači ovako kod unosa u bazu napravit ću prvo uzimanje godine zadnjeg reda, zatim ako se ta godina razlikuje od trenutne godine (što znači da je godina promjenjena) prije samog unosa u bazu tada će se napraviti reset auto increment polja (samo ne znam dal to moze bit neko odredjeno polje). i to bi moglo bit to mozda, u glavi ![]()
__________________
FX6300+, Radeon R7 260X 2GB, RAM: 16Gb |
![]() |
![]() |
![]() |
#6 |
Premium
Datum registracije: Sep 2007
Lokacija: Velika / Osijek
Postovi: 1,442
|
Tako nešto, samo prije unosa uzmi zadnji red iz baze i obavi reset. E sad sami reset je poseban problem koliko sam ja malo googlao innodb se nemože resetirati AI, već se samo truncate-a taj stupac i ponovo napravi što IMO nema smisla. MOžda nova tablica za svaku godinu? |
![]() |
![]() |
![]() |
#7 |
Registered User
Datum registracije: Oct 2010
Lokacija: Rijeka
Postovi: 48
|
Hmm ili da tablica bude myissam xD ... ajde bas cu vidit ako sta mogu smuckat... ako uspijem javim tu, pa mozda nekome bude trebalo. hvala
__________________
FX6300+, Radeon R7 260X 2GB, RAM: 16Gb |
![]() |
![]() |
![]() |
#8 |
Premium
Datum registracije: Nov 2004
Lokacija: VKCI
Postovi: 1,221
|
A da ubaciš u tablicu još jedno polje "Slijed" pa njega mijenjaš s obzirom na uvjete datuma i godine. Programski sam sve određuješ a ne da MySQL sam to drađuje. |
![]() |
![]() |
![]() |
#9 |
Registered User
Datum registracije: Oct 2010
Lokacija: Rijeka
Postovi: 48
|
Evo prijatelj uskočio u pomoć, kako jednostavna solucija a na netu ne možeš nać to. jedan upit koji sve napravi zapravo. uvjet je da su broj_racuna, godina i user_id unique grupa, index znaci. Code:
"select ifnull(max(broj_racuna),0)+1 as broj from racuni where godina = {$godina} and user_id = {$idusers};";
__________________
FX6300+, Radeon R7 260X 2GB, RAM: 16Gb |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
|
|