Foros del Web » Programando para Internet » PHP »

problema con select max no incrementa

Estas en el tema de problema con select max no incrementa en el foro de PHP en Foros del Web. hola, cuando en la tabla no existen registros a la variable @idTipoVenta le sumo 1, pero no logro que me funcione select @idTipoVenta:=(max(idTipoVenta) + 1), ...
  #1 (permalink)  
Antiguo 21/10/2015, 10:47
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 9 meses
Puntos: 3
problema con select max no incrementa

hola, cuando en la tabla no existen registros a la variable @idTipoVenta le sumo 1, pero no logro que me funcione select @idTipoVenta:=(max(idTipoVenta) + 1), porque al existir un registro se deberia entrar en el else y sumarle 1 al ultimo registro, pero el select max no se incrementa y simplemente se asigna 1.

Como podria conseguir que se vaya incrementando en 1 el select max, porque no quiero usar campos auto_increment de mysql
Gracias

Código PHP:
DECLARE registrosTablaVenta INT DEFAULT 0;
SELECT @registrosTablaVenta:=count(*) from tipoVentas;
  
  
      if @
registrosTablaVenta 0 then
           set 
@idTipoVenta 1;
        else
        
        
select @idTipoVenta:=(max(idTipoVenta) + 1)
                   
from   tipoVentas ;
        

                
        
end if; 
  #2 (permalink)  
Antiguo 21/10/2015, 11:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: problema con select max no incrementa

¿Eso es código PHP?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/10/2015, 12:41
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: problema con select max no incrementa

<saludo>
Pues ese tema no es de php, es de mysql como tal.
Por otro lado, se podría solucionar de este modo

1. En el primer select agregar into registrosTablaVenta;
2. En el if, cambiar set por select y agregar los : antes del =

Con eso deberia funcionar.
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #4 (permalink)  
Antiguo 21/10/2015, 13:23
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 9 meses
Puntos: 3
Respuesta: problema con select max no incrementa

Disculpa por equivocarme de seccion, mortiprogramador hice lo que me dijiste pero me funciona solo cuano inserto el primer registro asignadole 1, pero si quiero ingresar un segundo registro se me mantiene el uno y no se incrementa 2.

Código PHP:

  
DECLARE idTipoVenta INT DEFAULT 0;
  DECLARE 
registrosTablaVenta INT DEFAULT 0

    
SELECT COUNT(*) INTO @registrosTablaVenta
    FROM  tipoVentas
;
 
   
   
      if @
registrosTablaVenta 0 then 
           select 
@idTipoVenta := 1
        else 
         
        
select @idTipoVenta:=(max(idTipoVenta) + 1
                   
from   tipoVentas 
         

                 
        
end if; 
  #5 (permalink)  
Antiguo 21/10/2015, 13:57
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: problema con select max no incrementa

<saludo>
Pues viendo lo que hiciste, moviste de sitio la variable que guarda
el resultado del primer select, yo te dije que le agregaras a lo que ya estaba.

Es decir
Código SQL:
Ver original
  1. SELECT @registrosTablaVenta:=COUNT(*) FROM tipoVentas INTO @registrosTablaVenta;

Ya con eso debería.
Sin embargo, te dejo el que yo tengo

Código SQL:
Ver original
  1. DECLARE registrosTablaVenta INT DEFAULT 0;
  2. SELECT @registrosTablaVenta:=COUNT(*) FROM tipoVentas INTO @registrosTablaVenta;
  3.    
  4.       IF @registrosTablaVenta = 0 THEN
  5.            SELECT @idTipoVenta := 1;
  6.         ELSE      
  7.             SELECT @idTipoVenta:=(MAX(idTipoVenta) + 1) FROM tipoVentas;  
  8.         END IF;


</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #6 (permalink)  
Antiguo 21/10/2015, 14:18
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 9 meses
Puntos: 3
Respuesta: problema con select max no incrementa

Gracias, pero me sigue guardando el primer registro con 1 y despues entra al else pero sigue manteniendo 1, porque phpmyadmin me muestra en pantalla

@idTipoVenta:=MAX(idTipoVenta) + 1
1


Código PHP:
BEGIN
  
DECLARE idTipoVenta INT DEFAULT 0
  DECLARE 
registrosTablaVenta INT DEFAULT 0

  
    
SELECT @registrosTablaVenta:=COUNT(*) FROM tipoVentas INTO                    @registrosTablaVenta;
    
      IF @
registrosTablaVenta 0 THEN
           SELECT 
@idTipoVenta := 1;
        ELSE      
  
SELECT @idTipoVenta:=(MAX(idTipoVenta) + 1FROM tipoVentas;  
        
END IF;
   
   
INSERT INTO tipoVentas(idTipoVenta,precio
VALUES 
(@idTipoVenta,2); 
  #7 (permalink)  
Antiguo 21/10/2015, 14:54
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: problema con select max no incrementa

<saludo>

Pues a mi me funciona, incluso implementando el insert
El insert me quedó así:

Código SQL:
Ver original
  1. INSERT INTO tipoVentas (idTipoVenta, precio) VALUES (@idTipoVenta, @precio);

El resultado del query se muestra bien,
y el insert también inserta el valor incrementado.

Por sí acaso, pregunto:
- ¿Cuál versión de mysql manejas?
- ¿Cual versión de phpmyadmin manejas?
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: max, mysql, registro, select, tabla, variable
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:17.