Foros del Web » Programando para Internet » PHP »

Número consecutivo que se reinicia en 0 cada día

Estas en el tema de Número consecutivo que se reinicia en 0 cada día en el foro de PHP en Foros del Web. A petición del foro, creé un nuevo tema para la misma pregunta que hizo (Perrin_1) ya que fue realizada hace 6 meses (27-ene-2010) pero inconclusa ...
  #1 (permalink)  
Antiguo 27/10/2010, 10:19
 
Fecha de Ingreso: octubre-2010
Ubicación: Guadalajara
Mensajes: 2
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Número consecutivo que se reinicia en 0 cada día

A petición del foro, creé un nuevo tema para la misma pregunta que hizo (Perrin_1) ya que fue realizada hace 6 meses (27-ene-2010) pero inconclusa su resolución. Por lo tanto la planteo nuevamente y espero contar con su participación para resolver la duda:

que tal a todos, alguien podria ayudarme a sugerirme como crear un id autonumerico?

Pero tengo una condicion, de que el id se reinicie en 0 cuando sea otro dia, osea que cada dia ese id se reinicie en 1 porque mi formato de id para el sistema es

YYYYmmdd#### (donde #### es el id)

El id es el que debe de empezar en 0001 cada vez que haya transcurrido un dia y así consecutivamente.

Entiendo lo de utilizar ambos campos como llave o llevar ambos campos separados y concatenarlos cuando se solicite, pero NO son la solución. Esto es porque dicho ID compuesto será el número Único y Principal de la entidad y es necesario llevarlo en un campo de la base de datos. No es capricho, es formato y condición para llevar el consecutivo.

Alguna sugerencia?

Gracias!
  #2 (permalink)  
Antiguo 27/10/2010, 11:06
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Número consecutivo que se reinicia en 0 cada día

Esa ID se almacena en una base de datos?
  #3 (permalink)  
Antiguo 27/10/2010, 12:42
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Número consecutivo que se reinicia en 0 cada día

bueno si almacenas el id y la fecha en la base de datos, solo haces una comparacion, para saber si estas en la misma fecha que la ultima que haz ingresado o es una nueva de ser lo ultimo insertas el nuevo numero.

Postdata: no creo que esto se pueda hacer con autonumericos, porque hasta donde yo se solo sirven para ir incrementando los numeros
  #4 (permalink)  
Antiguo 27/10/2010, 14:28
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Información Respuesta: Número consecutivo que se reinicia en 0 cada día

Eso, por eso preguntaba si era con base de datos, siendo así debería estar esto en Bases de Datos no?

se me ocurre algo así

Buscar si hay algún registro que comience por la fecha de hoy de mayor a menor, de modo de obtener el último correlativo y asi poner el siguiente:

<?php $mq=mysql_query("SELECT * FROM tabla WHERE id LIKE '".date('Ymd')."%' ORDER BY id DESC;",$con); ?>

Si no existe entonces tendrías que insertar el 0001

Si existe entonces te entregaría unos valores algo asi:

201010270015
201010270014
201010270013
201010270012
201010270011
...

solo nos interesa el primero, obtienes el último numero (201010270015) y solo sacas los ultimos 4 caracteres (0015) y le sumas 1:

<?php $last=substr("201010270015",-4); $last++; ?>

Solo te queda insertarlo con el mismo formato de antes:

<?php mysql_query("INSERT INTO tabla (id) VALUES ('".date('Ymd').$last."');",$con); ?>

espro que te sirva, si no avisame
  #5 (permalink)  
Antiguo 27/10/2010, 15:20
 
Fecha de Ingreso: octubre-2010
Ubicación: Guadalajara
Mensajes: 2
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Número consecutivo que se reinicia en 0 cada día

Cita:
Iniciado por stramin Ver Mensaje
Eso, por eso preguntaba si era con base de datos, siendo así debería estar esto en Bases de Datos no?

se me ocurre algo así

Buscar si hay algún registro que comience por la fecha de hoy de mayor a menor, de modo de obtener el último correlativo y asi poner el siguiente:

<?php $mq=mysql_query("SELECT * FROM tabla WHERE id LIKE '".date('Ymd')."%' ORDER BY id DESC;",$con); ?>

Si no existe entonces tendrías que insertar el 0001

Si existe entonces te entregaría unos valores algo asi:

201010270015
201010270014
201010270013
201010270012
201010270011
...

solo nos interesa el primero, obtienes el último numero (201010270015) y solo sacas los ultimos 4 caracteres (0015) y le sumas 1:

<?php $last=substr("201010270015",-4); $last++; ?>

Solo te queda insertarlo con el mismo formato de antes:

<?php mysql_query("INSERT INTO tabla (id) VALUES ('".date('Ymd').$last."');",$con); ?>

espro que te sirva, si no avisame
eres grande stramin! lo voy a implementar porque realmente me suena que si funciona... gracias!

Etiquetas: autonumérico, compuesto, consecutivo, fechas, campos
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 23:37.