Octubre 19, 2017, 12:17:43 am
Visitante



Autor Tema: [Ayuda] Consulta implementacion de tops  (Leído 475 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Enero 29, 2017, 09:09:27 am

LogoWire




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    c:
  • Actividad

  • 0%
  • Logros

Más información


Buenas!, estoy haciendo una pagina web a código desde 0 para mi servidor y quisiera saber como es posible hacer un "top actividad" en mi pagina web.



Linkback: http://minecraftmin.net/index.php?topic=14298.0





Respuesta #1 Enero 29, 2017, 01:06:02 pm

Alfomega




  • Conectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Ingeniero informático
  • Actividad

  • 27%
  • Logros

Más información

Ya que no has especificado, supongo que el top es de algo en concreto, tipo noticias o post de un foro y no de múltiples cosas. Se hace con una única consulta a la BD:
Código: [Seleccionar]
SELECT (*)
FROM nombre_tabla
ORDER_BY id_tabla DESC
LIMIT 10
-nombre_tabla e id_tabla los cambias por el nombre de la tabla y el identificador que hayas puesto respectivamente.
-En LIMIT 10 puedes cambiar ese 10 por el número de elementos del top que quieras.
-Puedes añadir un WHERE antes del LIMIT si lo necesitas.
-Y como no, puedes (y debes) concretar el SELECT con los datos que necesitas.
Alfomega



Respuesta #2 Enero 29, 2017, 09:48:28 pm

LogoWire




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    c:
  • Actividad

  • 0%
  • Logros

Más información


Perdón por especificar tan poco, exactamente deseo hacer lo siguiente:
Un top en las que se muestren las 5 - 10 personas que mas han jugado en el servidor (en el mes en curso) y cuantas horas lo han echo y que automáticamente se reinicie cada mes pero que guarde el dato del primero para otra casilla, algo así.




Respuesta #3 Enero 30, 2017, 01:04:48 pm

Alfomega




  • Conectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Ingeniero informático
  • Actividad

  • 27%
  • Logros

Más información

Te lo voy a exponer en pseudocódigo para que lo implementes a tu modo y aprendas en el proceso. ;)
Lo primero tendrás que hacer que en una tabla de la bd se guarde el número de horas que han jugado cada mes, ya sea un jugador por fila y mes o día a día, eso ya como te vaya mejor.
Luego, tendrás que obtener una lista ordenada por tiempo de todos los jugadores de este mes y mediante la consulta de antes sacas los 10 mejores. Dicha lista la sacas directa si ya guardas a los jugadores una sola vez pero si guardas una por día/sesión tendrás que hacer un SUM() de los tiempos con un GROUP_BY por jugador.
Para el top anterior será más o menos lo mismo, solo que cogiendo con el limit 1





Respuesta #4 Enero 30, 2017, 01:24:24 pm

LogoWire




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    c:
  • Actividad

  • 0%
  • Logros

Más información


Pero la gran pregunta es como guardar el tiempo jugado en la db, hay un plugin que encontré reciente que me lo hace pero me guarda un valor extraño en el tiempo. Alguna idea?



Respuesta #5 Enero 30, 2017, 10:15:48 pm

Alfomega




  • Conectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Ingeniero informático
  • Actividad

  • 27%
  • Logros

Más información

Yo ahí ya no te puedo ayudar, tendrán que ver algo compatible con lo que uses. De todos modos, ¿a qué te refieres con extraño? si es un número muy grande se debe a que los ordenadores cuentan el tiempo en número de segundos desde el 1 de enero de 1970, por lo que el número es muy grande.



Share via delicious Share via digg Share via facebook Share via furl Share via linkedin Share via myspace Share via reddit Share via stumble Share via technorati Share via twitter

xx
Ayuda con mi foro de mi server de mc!!

Iniciado por rickinmbi

2 Respuestas
87 Vistas
Último mensaje Agosto 14, 2017, 01:13:49 am
por rickinmbi