Foros del Web » Programando para Internet » PHP »

Límite máximo de registros

Estas en el tema de Límite máximo de registros en el foro de PHP en Foros del Web. Hola, como puedo hacer para que una tabla de una bd tenga un límite máximo de por ejemplo 50 registros, es decir, que se vayan ...
  #1 (permalink)  
Antiguo 05/12/2007, 05:47
Avatar de EnCeRiO  
Fecha de Ingreso: septiembre-2004
Mensajes: 375
Antigüedad: 19 años, 7 meses
Puntos: 0
Límite máximo de registros

Hola, como puedo hacer para que una tabla de una bd tenga un límite máximo de por ejemplo 50 registros, es decir, que se vayan eliminando los últimos a medida que se introducen de nuevos.

Utilizo una bd mysql e introduzco los registros con php

Gracias
Un saludo
__________________
Médicos Sin Fronteras
Casi todos sabemos a qué se dedican, pero no sabemos lo fácil que es hacerse socio, ¿te sobran 10 €/mes?
  #2 (permalink)  
Antiguo 05/12/2007, 11:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: Límite máximo de registros

Con un trigger que ante cada INSERT verifique si ya existen 50 registros y borre el primero.

Algo así:
CREATE TRIGGER SOLO50 ON TABLA1 BEFORE INSERT
FOR EACH ROW
BEGIN
IF (SELECT COUNT(*) FROM TABLA1)=50 THEN
DELETE FROM TABLA1 WHERE TABLA1.ID = (SELECT MIN(ID) FROM TABLA1);
END IF;
END
  #3 (permalink)  
Antiguo 05/12/2007, 13:26
Avatar de EnCeRiO  
Fecha de Ingreso: septiembre-2004
Mensajes: 375
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Límite máximo de registros

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Con un trigger que ante cada INSERT verifique si ya existen 50 registros y borre el primero.

Algo así:
CREATE TRIGGER SOLO50 ON TABLA1 BEFORE INSERT
FOR EACH ROW
BEGIN
IF (SELECT COUNT(*) FROM TABLA1)=50 THEN
DELETE FROM TABLA1 WHERE TABLA1.ID = (SELECT MIN(ID) FROM TABLA1);
END IF;
END
Gracias por contestar.

Aunque (para variar, es que soy muy torpe) a mi no me sale

Para insertar registros tengo algo así:
Código PHP:
        $link mysql_connect("localhost","usuario","pass");
        
mysql_select_db("bd",$link);

        
mysql_query("INSERT INTO tabla (texto)
        VALUES ('{$_POST['texto']}')"
,$link); 
Como debe quedar?
Asi: ?
Código PHP:
        $link mysql_connect("localhost","usuario","pass");
        
mysql_select_db("bd",$link);

        
CREATE TRIGGER SOLO50 ON TABLA1 BEFORE INSERT 
        
FOR EACH ROW
        BEGIN 
        
IF (SELECT COUNT(*) FROM TABLA1)=50 THEN
        DELETE FROM TABLA1 WHERE TABLA1
.ID = (SELECT MIN(IDFROM TABLA1);
        
END IF;
        
END

        mysql_query
("INSERT INTO tabla (texto)
        VALUES ('{$_POST['texto']}')"
,$link); 
Verdad que no?

Un saludo.
__________________
Médicos Sin Fronteras
Casi todos sabemos a qué se dedican, pero no sabemos lo fácil que es hacerse socio, ¿te sobran 10 €/mes?
  #4 (permalink)  
Antiguo 05/12/2007, 19:25
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Límite máximo de registros

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #5 (permalink)  
Antiguo 05/12/2007, 20:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Límite máximo de registros

El trigger que te puso gnzsoloyo es para que lo hagas en tu base de datos y no a nivel PHP.

Saludos.
  #6 (permalink)  
Antiguo 06/12/2007, 05:25
Avatar de EnCeRiO  
Fecha de Ingreso: septiembre-2004
Mensajes: 375
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Límite máximo de registros

Cita:
Iniciado por GatorV Ver Mensaje
El trigger que te puso gnzsoloyo es para que lo hagas en tu base de datos y no a nivel PHP.

Saludos.
Ok!

Lo he hecho y me dice:
Código:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRIGGER SOLO50 ON tabla BEFORE INSERT
FOR EACH ROW
BEGIN
IF (SELECT COUNT(' at line 1
Un saludo
__________________
Médicos Sin Fronteras
Casi todos sabemos a qué se dedican, pero no sabemos lo fácil que es hacerse socio, ¿te sobran 10 €/mes?
  #7 (permalink)  
Antiguo 06/12/2007, 09:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Límite máximo de registros

Que version de MySQL manejas?

Saludos.
  #8 (permalink)  
Antiguo 06/12/2007, 10:08
Avatar de EnCeRiO  
Fecha de Ingreso: septiembre-2004
Mensajes: 375
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Límite máximo de registros

Cita:
Iniciado por GatorV Ver Mensaje
Que version de MySQL manejas?

Saludos.
Creo que la: 4.1.22

En phpMyAdmin pone:
# Versión del servidor: 4.1.22-standard
# Versión del protocolo: 10
# Servidor: Localhost via UNIX socket
# Usuario: ********
# Juegos de caracteres de MySQL: UTF-8 Unicode (utf8)
__________________
Médicos Sin Fronteras
Casi todos sabemos a qué se dedican, pero no sabemos lo fácil que es hacerse socio, ¿te sobran 10 €/mes?
  #9 (permalink)  
Antiguo 06/12/2007, 10:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Límite máximo de registros

La version 4.1 no tiene Triggers creo, asi que necesitaras usar la version 5.0 minimo.

Saludos.
  #10 (permalink)  
Antiguo 06/12/2007, 13:39
Avatar de EnCeRiO  
Fecha de Ingreso: septiembre-2004
Mensajes: 375
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Límite máximo de registros

Cita:
Iniciado por GatorV Ver Mensaje
La version 4.1 no tiene Triggers creo, asi que necesitaras usar la version 5.0 minimo.

Saludos.
Ok, muchas gracias
__________________
Médicos Sin Fronteras
Casi todos sabemos a qué se dedican, pero no sabemos lo fácil que es hacerse socio, ¿te sobran 10 €/mes?
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:02.