Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla

PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla
Artículo
Responder citando    Descargar mensaje  
Mensaje PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla 
 
Pues estoy pensando en hacer una pagina web para llevar los marcadores "online" de juegos.
Me explico:
cada vez que terminamos una partida, se "sube" al servidor los datos de la partida, y luego se lee el resultado que muesta la página, que son los 10 mejores registros de puntuación.
 
El programa en gambas3, se encargaria de crear una url,  abrir la  pagina web y leer los resultados
Por ejemplo, en gambas3, se crearia algo parecido a esto:
http:\\www.mimarcador1942.com\resultados.php?jugador=pepito&pais=españa&puntuacion=1020&fecha=10/12/2014

En php, haria la parte de lectura de la url y la inserción del dato en la tabla correspondiente.

Una vez introducido el dato, quiero mostar los 10 mejores resultados (puntuaciones mayores). Seria una sentencia parecida a esta:
SELECT * FROM DATOS ORDER BY PUNTUACION DESC  LIMIT 0, 10;
SELECT top 10  * FROM DATOS ORDER BY PUNTUACION DESC;


Problema que se plantea:
Pero a medida que la gente juege y se suban los resultados, la base de datos se ira llenando de datos, pero solo me interesan los 10 con mayor puntuación ¿como puedo borrar los resultados que no me interesen?

¿como lo hariais?

Nota:
Se me acaba de ocurrir una cosa:
Justo antes de insertar el dato leido, el programa en php, puede comprobar si la puntuacion es superior al minimo que tiene en los 10 registros, y si es asi, lo inserta y borraria el resultado nº 11 antes de cerrar la conexion a la base de datos



 
última edición por jsbsan el Miercoles, 01 Octobre 2014, 11:57; editado 1 vez 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Miercoles, 01 Octobre 2014, 11:53 ]
 


PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla 
 
Esa es una vieja técnica: Los Registros "Reciclables"

Es muy simple: al borrar, no borres, limpia todos los campos y asígnale al registro una clave imposible (que empieze por x o lo que sea.
Antes de insertar algo busca la claves imposibles (registros cuya clave empieze por x) y si existe reutiliza ese registro. Si no, añade uno nuevo.
De vez en cuando elimina a pedal los reciclables y así no crece nunca demasiado.

Saludos



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Miercoles, 01 Octobre 2014, 12:32 ]
Responder citando    Descargar mensaje  
Mensaje Re: PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla 
 
Se me ocurre algo así (ojo que no lo he probado...):


DELETE FROM Datos WHERE Datos.campo NOT IN (SELECT top 10 * FROM DATOS ORDER BY PUNTUACION DESC);

-- o tambien -

DELETE FROM Datos WHERE  NOT EXIST (SELECT top 10 * FROM DATOS ORDER BY PUNTUACION DESC);



También puedes añadir un campo más a tu tabla y llenarlo con algo sólo los registros que devuelve tu consulta inicial TOP 10. Entonces ya puedes eliminar el resto sin peligro:

DELETE FROM Datos WHERE Datos.Top = ''; /* o NULL, depende de la config del campo */


Saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Miercoles, 01 Octobre 2014, 12:46 ]
Responder citando    Descargar mensaje  
Mensaje Re: PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla 
 
Bueno, pues aporto la solución que he encontrado, y en principio, funciona, aunque no es tan óptima como las vuestras:

- Cuando hace el listado de las 10 puntuaciones más altas, se queda con el valor de la mínima puntuación
- Luego hace una consulta de borrado, borrando los registros que tengan una puntuación menor que la minima.

El defecto que tiene es que si hay puntuaciones iguales al mínimo, no las borra.  

http://pastebin.com/embed_js.php?i=UNXDjLDk

(mi código de php no es muy bueno ya que es un corte y recorte y reuso de otros códigos)

Gracias a los dos por contestar

Saludos



 
última edición por jsbsan el Miercoles, 01 Octobre 2014, 14:28; editado 1 vez 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Miercoles, 01 Octobre 2014, 14:28 ]
Responder citando    Descargar mensaje  
Mensaje Re: PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla 
 
Ese código no puede funcionar con tantas "\" barras invertidas de escape. ¿Lo estás usando así o es un problema del pastebin?

Prueba nuestro propio pastebin: http://paste.gambas-es.org

(Es verdad, era una primicia y no la había anunciado todavía)


Saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Miercoles, 01 Octobre 2014, 17:05 ]
Responder citando    Descargar mensaje  
Mensaje Re: PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla 
 
¿Cualo es pastebin? No entiendo el concepto así, a primera vista...   



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Miercoles, 01 Octobre 2014, 18:52 ]
Responder citando    Descargar mensaje  
Mensaje Re: PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla 
 
jguardon:

Citar:
Ese código no puede funcionar con tantas "\" barras invertidas de escape.

Pues no se porque aparecen, en el codigo orinal no estaban...
Citar:

Prueba nuestro propio pastebin:

Vale, lo acabo de añadir
Aqui lo podeis ver: http://paste.gambas-es.org/view/bee65b42

Por cierto, lo he añadido 2 veces, y no se como borrarlo..



 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Miercoles, 01 Octobre 2014, 18:54 ]
Responder citando    Descargar mensaje  
Mensaje Re: PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla 
 
Shordi:

Citar:
pastebin? No entiendo el concepto así, a primera vista...

Los "pastebin" (porque hay varios) son unas páginas web donde puedes subir  un código (o parte de este), y ellos te dan un enlace para insertar en tu blog o donde quieras, donde se mostrará el codigo coloreado (si le has indicado el lenguaje con el que esta hecho).

Yo el que he usado es este: http://pastebin.com/

Te tienes que dar de alta en el sitio, y tienes dos modalidades:
la gratis: donde puedes subir los códigos, pero luego no puedes modificarlo (y no se si tienen un limite de espacio, supongo que si)
la de pago: donde te dan mas servicios.

Saludos



 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Miercoles, 01 Octobre 2014, 19:00 ]
Responder citando    Descargar mensaje  
Mensaje Re: PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla 
 
Ok, gracias.



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Miercoles, 01 Octobre 2014, 19:15 ]
Responder citando    Descargar mensaje  
Mensaje Re: PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla 
 
Usad el nuestro, a ver si con los anuncios ingresamos un céntimo para la Comunidad

http://paste.gambas-es.org


Por cierto, Julio, los códigos no se pueden borrar a menos que pongas un tiempo de vida.

Saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Miercoles, 01 Octobre 2014, 23:14 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron