Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla
Autor Mensaje
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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Miercoles, 01 Octobre 2014, 11:57; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Miercoles, 01 Octobre 2014, 14:28; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
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
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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..
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla 
 
Ok, gracias.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron