Foros del Web » Programando para Internet » PHP »

incrementar automatico un dato numerico

Estas en el tema de incrementar automatico un dato numerico en el foro de PHP en Foros del Web. hola bueno tengo una consulta mi caso es el siguiente : quiero saber como puedo hacer que al insertar en mi caso el num_inventario me ...
  #1 (permalink)  
Antiguo 03/08/2009, 09:02
 
Fecha de Ingreso: junio-2009
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
incrementar automatico un dato numerico

hola bueno tengo una consulta mi caso es el siguiente :

quiero saber como puedo hacer que al insertar en mi caso el num_inventario
me genere un numero correlativo incrementando el ultimo num_inventario en uno
en este php tengo el insert para verificar si existe el num_inventario , lo que necesito es agregar a esa sentencia el que si no existe que inserte y genere el siguiente num_inventario autoincrementado
de antemano muchas gracias :D
saludos
Código PHP:
<?php 
include_once("conexion.class.php");

class 
Cliente{
 
//constructor    
     
var $con;
     function 
Cliente(){
         
$this->con=new DBManager;
     }

    function 
insertar($campos){
        if(
$this->con->conectar()==true){
            
$query "SELECT num_inventario FROM especies WHERE num_inventario = '".$_POST['num_inventario']."'";
if(
$resultado mysql_query($query)){
     

        if(
mysql_num_rows($resultado) == 0)
        
        
        {
            
            
            
//print_r($campos);
            //echo "INSERT INTO cliente (nombres, ciudad, sexo, telefono, fecha_nacimiento) VALUES ('".$campos[0]."', '".$campos[1]."','".$campos[2]."','".$campos[3]."','".$campos[4]."')";
            
return mysql_query("INSERT INTO especies (num_serie, num_resolucion, num_factura, Marca, Modelo, Proveedor, Servicio, bodega_des, compra_fecha, Valor, ingreso, num_inventario, codificacion, tipo) VALUES ('".$campos[0]."', '".$campos[1]."','".$campos[2]."','".$campos[3]."','".$campos[4]."','".$campos[5]."','".$campos[6]."','".$campos[7]."','".$campos[8]."','".$campos[9]."','".$campos[10]."','".$campos[11]."','".$campos[12]."','".$campos[13]."')");
        
        }
    }
    }
    }
    
    function 
actualizar($campos,$id){
        if(
$this->con->conectar()==true){
            
//print_r($campos);
            
return mysql_query("UPDATE especies SET num_serie = '".$campos[0]."', num_resolucion = '".$campos[1]."', num_factura = '".$campos[2]."', Marca = '".$campos[3]."', Modelo = '".$campos[4]."', Proveedor = '".$campos[5]."', Servicio = '".$campos[6]."', bodega_des = '".$campos[7]."', compra_fecha = '".$campos[8]."', Valor = '".$campos[9]."', ingreso = '".$campos[10]."', num_inventario = '".$campos[11]."', codificacion = '".$campos[12]."', tipo = '".$campos[13]."' WHERE id = ".$id);
        }
    }
    
    function 
mostrar_cliente($id){
        if(
$this->con->conectar()==true){
            return 
mysql_query("SELECT * FROM especies WHERE id=".$id);
        }
    }

    function 
mostrar_clientes(){
        if(
$this->con->conectar()==true){
            return 
mysql_query("SELECT * FROM especies ORDER BY id DESC");
        }
    }

    function 
eliminar($id){
        if(
$this->con->conectar()==true){
            return 
mysql_query("DELETE FROM especies WHERE id=".$id);
        }
    }
}
?>
  #2 (permalink)  
Antiguo 03/08/2009, 09:08
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: incrementar automatico un dato numerico

y en tu BD no puedes ponerle el num_inventario como id autoincrement? o tiene algun formato en especial?
__________________
Quitenme la vida pero no la bebida.
  #3 (permalink)  
Antiguo 03/08/2009, 09:23
 
Fecha de Ingreso: junio-2009
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: incrementar automatico un dato numerico

no lo tengo auto_increment solo tengo id cono auto_increment pero se pueden tener 2 datos asi en una tabla?
pero eso me pondra el dato segun el orden se podria hacer asi? o ala larga podria producir algun tipo de error? cual seria la forma mas factible
  #4 (permalink)  
Antiguo 03/08/2009, 09:25
 
Fecha de Ingreso: julio-2009
Mensajes: 118
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: incrementar automatico un dato numerico

ponlo como auto increment
  #5 (permalink)  
Antiguo 03/08/2009, 10:07
 
Fecha de Ingreso: junio-2009
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
lo puse auto_increment per cuando dejo el input en blanco el primer dato me lo tira en 1 pero cuando intento insertar el segundo me tira el error que ya existe el numero u.u

lo puse auto_increment per cuando dejo el input en blanco el primer dato me lo tira en 1 pero cuando intento insertar el segundo me tira el error que ya existe el numero u.u

Última edición por GatorV; 04/08/2009 a las 11:12
  #6 (permalink)  
Antiguo 03/08/2009, 10:20
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: incrementar automatico un dato numerico

A menos que en tu sistema hagas una consulta o busqueda por numero de inventario, podrias armar o generar un codigo concatenado con el ID de tu tabla, cada vez que lo guardes en la BD por ejemplo I0001 ... donde 1 vendria a ser el ID autoincrement de tu tabla, de esta manera seria irrepetible.

Ojo cuando hagas un insert a una tabla con un id autoincrement el primer campo seria null
__________________
Quitenme la vida pero no la bebida.
  #7 (permalink)  
Antiguo 03/08/2009, 10:31
 
Fecha de Ingreso: junio-2009
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
lo puse auto_increment per cuando dejo el input en blanco el primer dato me lo tira en 1 pero cuando intento insertar el segundo me tira el error que ya existe el numero u.u

rax por la recomendacion pero no tendrias asi como un ejemplo lo que pasa q soy nuevito en esto de php :D grax saludos

Última edición por GatorV; 04/08/2009 a las 11:12
  #8 (permalink)  
Antiguo 03/08/2009, 10:47
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: incrementar automatico un dato numerico

Suponemos que quieres generar un nuevo numero de inventario : (ojo que el numero se genera despues de haber ingresado todos los datos, no se genera en el formulario como en un software de escritorio)

1. primero busca el ultimo ID de tu tabla y le sumas +1 y lo guardas en una variable $nuevo_id
2. haces una funcion para generar ceros los que deseas (si deseas concatenas una letra adelante)

Código PHP:
function ceros($numero$ceros=2){
   return 
sprintf("%0".$ceros."s"$numero );

3. Armas tu numero de inventario

Código PHP:
$cadena1="I";
$cadena2=ceros($nuevo_id,4);  //cantidad de ceros que deseas
$numero_inventario=$cadena1.$cadena2
Espero te sirva el ejemplo, saludos
__________________
Quitenme la vida pero no la bebida.
  #9 (permalink)  
Antiguo 03/08/2009, 12:00
 
Fecha de Ingreso: junio-2009
Mensajes: 33
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: incrementar automatico un dato numerico

gracias pro la ayuda intentare :D saluditos ojala pueda donde soy novato :D saludos
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:00.