|
Página 1 de 1
|
PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla
Autor |
Mensaje |
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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
|
#1 Miercoles, 01 Octobre 2014, 11:53 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
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
|
#2 Miercoles, 01 Octobre 2014, 12:32 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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"
|
#3 Miercoles, 01 Octobre 2014, 12:46 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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
|
#4 Miercoles, 01 Octobre 2014, 14:28 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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"
|
#5 Miercoles, 01 Octobre 2014, 17:05 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla
¿Cualo es pastebin? No entiendo el concepto así, a primera vista...
|
#6 Miercoles, 01 Octobre 2014, 18:52 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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..
|
#7 Miercoles, 01 Octobre 2014, 18:54 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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
|
#8 Miercoles, 01 Octobre 2014, 19:00 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: PhP Y Mysql: Borrado De Registros "sobrantes" De Una Tabla
Ok, gracias.
|
#9 Miercoles, 01 Octobre 2014, 19:15 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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"
|
#10 Miercoles, 01 Octobre 2014, 23:14 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|