tengo un sistema que tiene un campo en la tabla llamado numero dicho campos e va agregando un numero el cual se le adicionan unos ceros a la izquierda mas el año así:
000001-2017
el siguiente que se desea agregar hace una consulta a esa tabla y dependiendo el numero que este allí le adiciona un numero mas para crear una numeración consecutiva..
000002-2017
000003-2017 etc...
Este sistema lo logro así:
Código PHP :
<?php $anof=date('Y'); ?> <?php $dbName = "basededatos";//nombre de la Base de datos $username = "usuario";//usuario $password = "contrasena";//contraseña $tabla = "tabla"; $hostname = "localhost"; mysql_connect($hostname,$username,$password) or print "Error en la Conexión"; mysql_select_db("$dbName") or print "Error en la Base de datos"; $sql="select numero from $tabla order by id desc limit 0,1"; $result=mysql_query($sql); $array=mysql_fetch_array($result); //-------------JUGANDO UN POCO CON LAS VARIABLES------------------------------------------------- $nume=$array["numero"]; $nume2=$nume+1; //poner ceros a la izquierda----------------------------------------------- $nume3=str_pad($nume2, 5, "0", STR_PAD_LEFT); ?>
En el campo del formulario numero pongo como valor inicial <? echo $nume3 ?> para que muestre el numero que sigue como lo indique arriba y lo pongo solo lectura de esta manera la numeración va consecutivamente (fuera del campo ID que es autoincrement)
pero quiero que al pasar de año es decir 2018 por ejemplo, este contador enumere nuevamente desde 1 es decir asi:
000001-2018
... etc....
hora modificando un poco el código y jugando mucho mas con las variables y creando condicionales adicionales y usando un ingenio poco ortodoxo he puestos algo así como un enredo total atreviéndome a lo desconocido... para tratar de crear lo que necesito... al parecer funciona pero será la mejor manera
Código PHP :
<?php $anof=date('Y'); //$anof="2017"; //creao un adicional para mostrar el año siguiente al actual $anosig=date("Y",strtotime(" +1 year")); ?> <?php $dbName = "basededatos";//nombre de la Base de datos $username = "usuario";//usuario $password = "contrasena";//contraseña $tabla = "tabla"; $hostname = "localhost"; mysql_connect($hostname,$username,$password) or print "Error en la Conexión"; mysql_select_db("$dbName") or print "Error en la Base de datos"; $sql="select numero from $tabla order by id desc limit 0,1"; $result=mysql_query($sql); $array=mysql_fetch_array($result); $nume=$array["numero"]; $nume2=$nume+1; $nume6=1; //poner ceros a la izquierda $nume3=str_pad($nume2, 5, "0", STR_PAD_LEFT); $nume6=str_pad($nume6, 5, "0", STR_PAD_LEFT); //$nume4=$nume3."-".$anof; // 2017 2018 ------------------ if($anof<=$anosig){ $nume4=$nume3."-".$anof; }else{ $nume4=$nume6."-".$anof; } ?>
sera esta la mejor manera para crearlo sera que al cambiar el año pasa reinicia esta numeración.....
Gracias espero ayuda---------------- perdonen mi manera de codificar soy tosco aun para esto