Foros del Web » Programando para Internet » PHP »

Numeración tipo 001,002

Estas en el tema de Numeración tipo 001,002 en el foro de PHP en Foros del Web. Estoy creando un ID para una venta el cual debe llevar una numeración tipo 001, 002, 003, 004 el asunto es hay alguna función o ...
  #1 (permalink)  
Antiguo 30/09/2008, 10:41
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Numeración tipo 001,002

Estoy creando un ID para una venta el cual debe llevar una numeración tipo 001, 002, 003, 004 el asunto es hay alguna función o algo asi para llevar a cabo esto?

Estuve buscando pero no encuentro nada que me sirva aun, trabajo con PHP y MySQL.

Última edición por Highlander; 30/09/2008 a las 10:48
  #2 (permalink)  
Antiguo 30/09/2008, 10:46
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Numeración tipo 001,002

Fija el campo en la tabla de la base de datos como ZEROFILL.

Mas info en http://dev.mysql.com/doc/refman/5.0/...ric-types.html

Saludos!
  #3 (permalink)  
Antiguo 30/09/2008, 10:46
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Numeración tipo 001,002

Si sabes que el ID debe ser de 3 digitos estrictamente, podrias tenerlo de esta forma:
Insertas normalemente, para mostrar o hacer consultas agregaras ceros al principio hasta cuando se complete la longitud de 3 digitos, de esta forma en las inserciones no tienes que manipular el ID.

Saludos

EDITADO: MUy buena la idea de Synkronice. :D
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #4 (permalink)  
Antiguo 30/09/2008, 10:52
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Numeración tipo 001,002

Dios mio que rapidas las respuestas, muchas gracias voy a revisar.
  #5 (permalink)  
Antiguo 30/09/2008, 10:55
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Numeración tipo 001,002

También podrías hacerlo directamente con PHP usando la función sprintf()

Saludos,
  #6 (permalink)  
Antiguo 30/09/2008, 11:02
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Numeración tipo 001,002

Lo que me olvido mencionar que ademas el codigo lleva el mes de la venta ej:

09/001

Aun no termino de revisar las ideas anteriores ahi posteo el codigo si resulta.
  #7 (permalink)  
Antiguo 30/09/2008, 11:05
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Numeración tipo 001,002

Evita usar "/" en un ID, puedes sustituirlo por un guion "-"

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #8 (permalink)  
Antiguo 30/09/2008, 11:05
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Numeración tipo 001,002

Si lleva el mes/codigo ya te adelanto que mi propuesta no te vale :)

Saludos!
  #9 (permalink)  
Antiguo 30/09/2008, 11:09
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Numeración tipo 001,002

Cita:
Iniciado por Genetix Ver Mensaje
Evita usar "/" en un ID, puedes sustituirlo por un guion "-"

Saludos!
Cual es la razon tecnica de eso? porque me pidieron especificamente que usara un /
igual podria usar un - y cambiarlo a / al momento de presentar el dato.
  #10 (permalink)  
Antiguo 30/09/2008, 11:25
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Numeración tipo 001,002

Lo mejor sería tener en la base de datos dos campos distintos, un id y el mes de la venta, y sólo los concatenas al momento de presentarlos. sprintf() te es útil en ese caso.

Saludos,
  #11 (permalink)  
Antiguo 30/09/2008, 12:40
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Numeración tipo 001,002

Cita:
Iniciado por okram Ver Mensaje
Lo mejor sería tener en la base de datos dos campos distintos, un id y el mes de la venta, y sólo los concatenas al momento de presentarlos. sprintf() te es útil en ese caso.

Saludos,
De echo tengo un id que uso para todo lo necesario otro con la fecha y ademas el de N Venta que seria el de este caso que lo genero cuando hago insert o modificar y lo almaceno en la bd por un motivo historico.

a la noche posteare el codigo si resulta, muchos saludos.
  #12 (permalink)  
Antiguo 01/10/2008, 11:53
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Numeración tipo 001,002

Ok funciono:

Deje un campo en la tabla llamado NVENTA con ZEROFILL, ya tenia otro con la fecha de la venta.

Asi que simplemente concateno ambos para dejarlo de la manera 09/001 al momento de mostrar el resultado.
  #13 (permalink)  
Antiguo 01/10/2008, 12:32
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: Numeración tipo 001,002

Cita:
Iniciado por Genetix Ver Mensaje
Evita usar "/" en un ID, puedes sustituirlo por un guion "-"
¿y eso por qué?

Cita:
Iniciado por okram Ver Mensaje
También podrías hacerlo directamente con PHP usando la función sprintf()
o strpad()

Que bueno que lo solucionaste Highlander. Era la mejor opción
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 14:19.