Foros del Web » Programando para Internet » PHP »

Crear consecutivo con php y mysql

Estas en el tema de Crear consecutivo con php y mysql en el foro de PHP en Foros del Web. Formas de crear consecutivos con Php y MYSQL Cree esta discusion ya que me gustaria saber como puedo crear un consecutivo. El consecutivo constaria año+consecutivo. ...
  #1 (permalink)  
Antiguo 18/09/2012, 10:51
 
Fecha de Ingreso: septiembre-2012
Ubicación: Colombia
Mensajes: 9
Antigüedad: 9 años, 9 meses
Puntos: 0
Información Crear consecutivo con php y mysql

Formas de crear consecutivos con Php y MYSQL

Cree esta discusion ya que me gustaria saber como puedo crear un consecutivo. El consecutivo constaria año+consecutivo.

El consecutivo quedaria asi por ejemplo: 201100001, 201100002 y asi sucesivamente ir incrementandolas ademas que cuando cambie el año tambien reinicie ese consecutivo. Cualquier aporte es altamente agradecido.
  #2 (permalink)  
Antiguo 18/09/2012, 11:12
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 16 años, 2 meses
Puntos: 58
Respuesta: Crear consecutivo con php y mysql

Pues si sale de una base de datos es sencillo. Buscas el ultimo y le sumas 1
En PHP tendrías que buscar el año y rellenar la parte siguiente con str_pad

Por ejemplo:
Código PHP:
Ver original
  1. <?php
  2. $salida=array();
  3. for ($i=2001;$i<2002;$i++){
  4.     for($j=9990;$j<10000;$j++){
  5.         $salida[]=$i.str_pad($j, 5, "0", STR_PAD_LEFT);
  6.     }
  7. }
  8. var_dump($salida);
  9. ?>
  #3 (permalink)  
Antiguo 18/09/2012, 13:30
 
Fecha de Ingreso: septiembre-2012
Ubicación: Colombia
Mensajes: 9
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Crear consecutivo con php y mysql

Si digamos yo he creado una tabla consecutivo que lleve un id, el consecutivo y el año. Cómo hago para leer el último dato y a ese sumarle el número.
Tengo la siguiente sentencia pero no me funciona:

$query= "SELECT * FROM pqr_consecutivo where 1=1";
if($pardato <> "" ) {
$query.= " and id = $pardato ";
}
$query.= " ORDER BY consecutivo LIMIT 1,1";
  #4 (permalink)  
Antiguo 19/09/2012, 05:28
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 16 años, 2 meses
Puntos: 58
Respuesta: Crear consecutivo con php y mysql

Pero en el campo consecutivo que datos hay? el año y el consecutivo completo o sólo el consecutivo?
Bueno la idea en general es la mima para sumar uno a un campo

Código PHP:
Ver original
  1. $query= "UPDATE pqr_consecutivo SET consecutivo=consecutivo+1 WHERE id='$pardato'";
  #5 (permalink)  
Antiguo 19/09/2012, 09:42
 
Fecha de Ingreso: septiembre-2012
Ubicación: Colombia
Mensajes: 9
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Crear consecutivo con php y mysql

Muhas gracias por tu respuesta. Ha sido de gran ayuda. Ahora necesito una condición (no estoy segura, ni como hacerla) que cuando cambie el año vuelva a empezar a contar.
  #6 (permalink)  
Antiguo 19/09/2012, 09:48
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 14 años, 2 meses
Puntos: 326
Respuesta: Crear consecutivo con php y mysql

En teoria, deberias bloquear la tabla, mirar el ultimo número, aumentarlo, grabar el registro, y desbloquear la tabla ;)

Pq si se da la casualidad de que dos personas a la vez lanzan ese proceso, se te crearia uno duplicado... si bloqueas la tabla, uno se queda "esperando" a q se desbloqueé, y el otro no...
__________________
>> Eleazan's Source
>> @Eleazan
  #7 (permalink)  
Antiguo 19/09/2012, 09:56
 
Fecha de Ingreso: septiembre-2012
Ubicación: Colombia
Mensajes: 9
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Crear consecutivo con php y mysql

y como se bloquea una tabla?
  #8 (permalink)  
Antiguo 19/09/2012, 10:42
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 14 años, 2 meses
Puntos: 326
Respuesta: Crear consecutivo con php y mysql

Te explico lo básico xD

Para bloquear una tabla:

Código MySQL:
Ver original
  1. LOCK TABLE `miTabla` WRITE
(o READ, segun necesidades)

Para que no haga commit automatico:

Código MySQL:
Ver original
  1. SET AUTOCOMMIT = 0

Después, todo lo q quieras (select, insert, updates...).. y nada tendrá efecto (y nadie podrá leer / escribir en esa tabla excepto este proceso, claro)

Para efectuar los cambios:
Código MySQL:
Ver original 

(En caso de no quererlos, sería ROLLBACK!, y se desharian todos los cambios!)

Volvemos a poner el autocommit a uno: (Si no hicieras esto, pero si el anterior... a partir de ahí cualquier update / insert hecho con esa conexión, no se efectuaría
Código MySQL:
Ver original
  1. SET AUTOCOMMIT = 1

Y desbloqueamos la tabla:
Código MySQL:
Ver original
  1. UNLOCK TABLES

Más o menos, así es (hay más opciones, pero con esto te harás una idea!)
__________________
>> Eleazan's Source
>> @Eleazan
  #9 (permalink)  
Antiguo 20/09/2012, 08:02
 
Fecha de Ingreso: septiembre-2012
Ubicación: Colombia
Mensajes: 9
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Crear consecutivo con php y mysql

Gracias por todo, al fin solo tenía que poner esto en el código antes de la sentencia del sql.

$anyo = date('Y'); //Devuelve el año actual;

if ($parano!=$anyo)
$parconsecutivo=0;
$parano=$anyo;

Etiquetas: consecutivo, php+bd+mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:59.