Foros del Web » Programando para Internet » PHP »

Incrementar Datos en campo de Texto

Estas en el tema de Incrementar Datos en campo de Texto en el foro de PHP en Foros del Web. Hola compañeros, tengo el siguiente problema: Estoy haciendo un pequeño proceso de ordenes de compra, y por cada proveedor ingreso X cantidad de items (productos) ...
  #1 (permalink)  
Antiguo 11/03/2011, 18:12
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 10 meses
Puntos: 2
Incrementar Datos en campo de Texto

Hola compañeros, tengo el siguiente problema:

Estoy haciendo un pequeño proceso de ordenes de compra, y por cada proveedor ingreso X cantidad de items (productos) y cada item ingresado tiene un numero de esta forma: "00001" y se va incrementando en 1 y luego lo inserto en la base de datos. Este es el codigo

Código PHP:

$cadena 
'0000';
//consulta para sacar el mayor del campo MOV_ITEM
$contar "SELECT MAX(mov_item) FROM dpmovinv WHERE mov_docume = '$doc' AND mov_tipdoc='$tipdoc' AND mov_codcta='$pro'";
$contador mysql_query($contar);
$total mysql_result($contador,0,0); //Guardo el Resultado de la Consulta con mysql_result
$cadena $total $cadena $total 1//incremento el contador en 1

$cont $cadena $total;


$sql=mysql_query("INSERT INTO dpmovinv(mov_codigo,mov_codcta,mov_docume,mov_fecha,mov_cantid,mov_item,mov_tipdoc) VALUES ('$cod','$pro','$doc','$fecha','$cant','$cont','$tipdoc')"); 
El problema es que cuando la cantidad de items ingresados llega a 10 me debiria dar como resultado 00010 y solo me esta devolviendo 00001, como puedo lograr que me incremente correctamente en 1. Cabe destacar que el campo lo tengo definido como CHAR y limite de 5 caracteres.

Espero puedan ayudarme y decirme que tengo mal en mi codigo, No uso un campo autoincrement xq es un correlativo distinto por cada proveedor.

Saludos
  #2 (permalink)  
Antiguo 11/03/2011, 18:26
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Incrementar Datos en campo de Texto

Porque no mejor insertas un simple entero (int) y luego a la hora de mostrarlo usas sprintf() para darle formato?
  #3 (permalink)  
Antiguo 11/03/2011, 18:34
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Incrementar Datos en campo de Texto

recuerda que en los números el cero a la izquierda no vale, y es poco practico almacenarlo como cadena para conservarlo porque consume mucha más memoria y disco.

de igual forma, para garantizar que php procese ese valor como numero, debes de hacer una conversión explicita a número, utilizando intval() por ejemplo, y así garantizas que se "sume" y no se concatene:

Código PHP:
Ver original
  1. $cadena = inval($total) + 1; //me parece que debe ser así ¿o no?

el problema: desaparecen los 0 a la izquierda, solución:

$cadena = sprintf("%05s", $cadena);

donde 0 es el relleno y 5 la cantidad a rellenar.

http://php.net/manual/en/function.sprintf.php
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 11/03/2011, 19:38
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Incrementar Datos en campo de Texto

Ronruby, maycolalvarez gracias por sus respuestas y disculpen xq no conocia la funcion sprintf, ya lei la funcion y entendi en parte su funcionamiento.

Gracias por sus respuestas, me funciono bien, solo tendre que hacerle algunos ajustes.

Saludos
  #5 (permalink)  
Antiguo 13/03/2011, 08:51
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Incrementar Datos en campo de Texto

Hola compañeros, maycolalvarez me funciono muy bien lo que me sugeriste con algunas mejoras para mis necesidades, ahora tengo otro problema. Despues de ingresar 10 o 15 items que se van incrementando asi:

00001
00002
00003
00004
00005
00006

Cuando Elimino un ITEM, por ejemplo el 00004 e ingrese uno nuevo queda asi:

00001
00002
00003
00005
00006
00007

Es posible que al eliminar un registro con numero 00004 el registro 00005 cambie por el numero del que se elimino?

Espero haberme explicado.

Saludos

Etiquetas: incrementar, 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 13:45.