Foros del Web » Programando para Internet » PHP »

Ranking (ordenar valores)

Estas en el tema de Ranking (ordenar valores) en el foro de PHP en Foros del Web. Hola chicos Tengo esto para mostrar un ranking por países de los usuarios de mi sitio: Código PHP: ... $sql = "SELECT COUNT(*) AS NUMBER FROM $tbl_name " ; $result = ...
  #1 (permalink)  
Antiguo 14/06/2008, 16:37
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 7 meses
Puntos: 1
Ranking (ordenar valores)

Hola chicos
Tengo esto para mostrar un ranking por países de los usuarios de mi sitio:
Código PHP:
...
$sql="SELECT COUNT(*) AS NUMBER FROM $tbl_name ";
$result=mysql_query($sql$con);
if (
$rowmysql_fetch_array($result))
{

$number=$row['NUMBER'];

}
mysql_connect("$host""$username""$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sqlt="SELECT DISTINCT country AS COUNTRY FROM $tbl_name ";

$resultt mysql_query($sqlt$con) or die("error en consulta <b>$con</b> :".mysql_error());
if (
$rowmysql_fetch_array($resultt))
{
DO
{
$country=$row['COUNTRY'];

$sqlto="SELECT COUNT(*) AS NUMCOUNTRY FROM $tbl_name WHERE country='$country'";

$resultto mysql_query($sqlto$con) or die("error en consulta <b>$con</b> :".mysql_error());

if (
$rowmysql_fetch_array($resultto))
{
$numcountry $row['NUMCOUNTRY'];

$percent round(($numcountry $number) * 1002);

//...el código sigue 
Todo bien, calculo la cantidad total, la cantidad de cada país y saco el porcentaje.
Pero no sé cómo mostrarlo ordenado en forma descendente... ya intenté todo.
Ayuda por favor.
  #2 (permalink)  
Antiguo 14/06/2008, 16:40
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Ranking (ordenar valores)

hola

provaste

ORDER BY campo ASC // ascendente

ORDER BY campo DESC
  #3 (permalink)  
Antiguo 14/06/2008, 16:41
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Ranking (ordenar valores)

Debes agregar a la consulta mysql esto ( al final ) :

ORDER BY tabla_cualquiera DESC

Tabla cualquiera puede ser el id, nombre, bla bla bla...

Espero te sirva. Nos vemos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #4 (permalink)  
Antiguo 14/06/2008, 17:02
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Ranking (ordenar valores)

Gracias
Estoy editando...
probé y todo perfecto.
Antes me daba error porque hacía COUNT(DISTINT country) AS COUNTRY.... y ordenaba BY COUNTRY

Yo lo estaba complicando, era más sencillo

Un cariño grande :)
  #5 (permalink)  
Antiguo 14/06/2008, 18:36
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Ranking (ordenar valores)

no no no... de esa forma me ordena por país pero NO por el porcentaje de ese país
Justo coincidía el orden alfabético con el orden porcentual pero cuando agregué registros ahí me di cuenta
  #6 (permalink)  
Antiguo 14/06/2008, 18:41
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Ranking (ordenar valores)

Esto te puede ayudar...

Avisas si te sirve o no...

http://cl.php.net/manual/es/function.natsort.php
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #7 (permalink)  
Antiguo 14/06/2008, 18:47
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Ranking (ordenar valores)

para que MySQL te ordene por porcentajes tendras que tener un campo en la tabla o en otra relacionada conn la que tienes donde almacenes los porcentajes

Un saludo
  #8 (permalink)  
Antiguo 14/06/2008, 18:51
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Ranking (ordenar valores)

para ordenar arrys de forma ascendente se usa la funcion

sort ();
  #9 (permalink)  
Antiguo 15/06/2008, 01:32
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Ranking (ordenar valores)

Lo solucioné así

Código PHP:
SELECT COUNT(*) as repetitionscountry
    FROM stats
    GROUP BY country desc
    HAVING repetitions 
0 ORDER BY repetitions desc
Seguro que hay una forma mejor pero bue ahí me funciona, lo dejo por si le sirve a alguien.
Gracias a todos por la ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:04.