Bienvenidos a un nuevo tutorial, hoy veremos un poco de .PHP en relación al ranking de nuestro servidor.
Un usuario nos escribio a consultas@muonlinetutoriales.com con la siguiente consulta:
¿Cómo hago que el ranking de mi página web, posicione primero a los que tienen más cantidad de MasterResets y no a quienes tiene más resets?
Para resolver esto, lo primero que necesitamos es ubicar nuestro ranking.php (El nombre es tan sólo referencial y puede variar de acuerdo a la página web que estemos utilizando)
Para este tutorial, usaré un ranking.php con el que ya habÃamos trabajado en tutoriales anteriores.
1)Localizado el archivo, lo abrimos (En mi caso siempre recomiendo trabajar con Dreamweaver) y lo que debemos buscar es la query que hace la selección de las columnas en la tabla character (Nuevamente, esto es tan sólo una ejemplificación ya que esta consulta puede realizarse de formas diversas)
2)En donde nos vamos a detener puntualmente, es aqui:
Entonces respondiendo la pregunta o inquitud de nuestro usuario, la solución serÃa modificar la palabra resets por MasterReset y de esta forma, nuestro ranking posicionará en orden descendente tomando en cuenta los MasterResets.
El código modificado nos quedarÃa asi:
3)Con ese simple cambio estarÃamos en condiciones de decir que la pregunta fue respondida y que el problema está solucionado.
Pero veamos la siguiente imagen:
4)Observen con atención a los primeros dos personajes de la imagen anterior, ¿Notan algo extraño?
Analizemos lo siguiente:
El personaje "Dragon201" tiene 10 MasterResets y 5 resets [Posición del ranking 1]
El personaje "LINDASAY" tiene 10 MasterResets y 27 resets [Posicion del ranking 2]
¿Tiene sentido que si ambos personajes tiene la misma cantidad de MasterResets se posicione primero el que tenga "menor" cantidad de resets? o ¿DeberÃa ser al revés, es decir, si ambos personajes tienen la misma cantidad de MasterResets, el ranking se ordene por quien tenga la mayor cantidad de Resets?
Para solucionar esto debemos agregar una segunda condición a nuestra consulta
Y si los dos personajes tienen la misma cantidad de MasterResets y la misma cantidad de Resets ¿Qué deberÃamos hacer en ese caso?
La respuesta seriá ordenarlos por nivel, de modo tal y de acuerdo a lo leÃdo, bastará con agregar un
a)Primero posicionará a los que tengan mayor cantidad de MasterResets
b)Si hay dos personajes con la misma cantidad de MasterResets, estará primero quien tenga mayor cantidad de Resets
c)Si esos dos personajes tienen la misma cantidad de MasterResets y Resets, estará primero quien tenga el mayor nivel.
Y adicionalmente pueder ir agregando más condiciones como por ejemplo, si ambos personajes tiene la misma cantidad de MasterResets, la misma cantidad de Resets y el mismo nivel, podemos tomar como parámetros de organización descendente a los stats del personaje, como por ejemplo la Fuerza.
No estarÃa de más aclarar que el único stat que no podrÃan tomar como determinador es el "Comando"
¿Por qué no puedo usar el comando como determinante?, la respuesta es sencilla: Porque los personajes como DK, ELF, DW , etc no podrÃan competir nunca.
Un usuario nos escribio a consultas@muonlinetutoriales.com con la siguiente consulta:
¿Cómo hago que el ranking de mi página web, posicione primero a los que tienen más cantidad de MasterResets y no a quienes tiene más resets?
Para resolver esto, lo primero que necesitamos es ubicar nuestro ranking.php (El nombre es tan sólo referencial y puede variar de acuerdo a la página web que estemos utilizando)
Para este tutorial, usaré un ranking.php con el que ya habÃamos trabajado en tutoriales anteriores.
1)Localizado el archivo, lo abrimos (En mi caso siempre recomiendo trabajar con Dreamweaver) y lo que debemos buscar es la query que hace la selección de las columnas en la tabla character (Nuevamente, esto es tan sólo una ejemplificación ya que esta consulta puede realizarse de formas diversas)
$query = 'select Name,Class,cLevel,Strength,Dexterity,Vitality,Energy,LevelUpPoint,CtlCode,resets, MasterReset from Character order by resets desc';
2)En donde nos vamos a detener puntualmente, es aqui:
order by resets descDicha instrucción lo que hace es ordenar (order by) el ranking de manera descendente (desc) tomando en cuenta a los resets.
Entonces respondiendo la pregunta o inquitud de nuestro usuario, la solución serÃa modificar la palabra resets por MasterReset y de esta forma, nuestro ranking posicionará en orden descendente tomando en cuenta los MasterResets.
El código modificado nos quedarÃa asi:
$query = 'select Name,Class,cLevel,Strength,Dexterity,Vitality,Energy,LevelUpPoint,CtlCode,resets, MasterReset from Character order by MasterReset desc';Y el resultado será el siguiente:
3)Con ese simple cambio estarÃamos en condiciones de decir que la pregunta fue respondida y que el problema está solucionado.
Pero veamos la siguiente imagen:
4)Observen con atención a los primeros dos personajes de la imagen anterior, ¿Notan algo extraño?
Analizemos lo siguiente:
El personaje "Dragon201" tiene 10 MasterResets y 5 resets [Posición del ranking 1]
El personaje "LINDASAY" tiene 10 MasterResets y 27 resets [Posicion del ranking 2]
¿Tiene sentido que si ambos personajes tiene la misma cantidad de MasterResets se posicione primero el que tenga "menor" cantidad de resets? o ¿DeberÃa ser al revés, es decir, si ambos personajes tienen la misma cantidad de MasterResets, el ranking se ordene por quien tenga la mayor cantidad de Resets?
Para solucionar esto debemos agregar una segunda condición a nuestra consulta
$query = 'select Name,Class,cLevel,Strength,Dexterity,Vitality,Energy,LevelUpPoint,CtlCode,resets, MasterReset from Character order by MasterReset desc, Resets desc';Y ahora el resultado serÃa el siguiente:
Y si los dos personajes tienen la misma cantidad de MasterResets y la misma cantidad de Resets ¿Qué deberÃamos hacer en ese caso?
La respuesta seriá ordenarlos por nivel, de modo tal y de acuerdo a lo leÃdo, bastará con agregar un
, cLevel descY de esta forma el ranking se organizará de la siguiente manera:
a)Primero posicionará a los que tengan mayor cantidad de MasterResets
b)Si hay dos personajes con la misma cantidad de MasterResets, estará primero quien tenga mayor cantidad de Resets
c)Si esos dos personajes tienen la misma cantidad de MasterResets y Resets, estará primero quien tenga el mayor nivel.
Y adicionalmente pueder ir agregando más condiciones como por ejemplo, si ambos personajes tiene la misma cantidad de MasterResets, la misma cantidad de Resets y el mismo nivel, podemos tomar como parámetros de organización descendente a los stats del personaje, como por ejemplo la Fuerza.
No estarÃa de más aclarar que el único stat que no podrÃan tomar como determinador es el "Comando"
¿Por qué no puedo usar el comando como determinante?, la respuesta es sencilla: Porque los personajes como DK, ELF, DW , etc no podrÃan competir nunca.