Foros del Web » Programando para Internet » PHP »

Duda con SELECT Y GROUP BY

Estas en el tema de Duda con SELECT Y GROUP BY en el foro de PHP en Foros del Web. Hola amigos. Estoy haciendo una consulta en una tabla de usuarios de mi BD para contar la cantidad de usuarios por país, el script es ...
  #1 (permalink)  
Antiguo 18/03/2008, 20:52
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Duda con SELECT Y GROUP BY

Hola amigos.

Estoy haciendo una consulta en una tabla de usuarios de mi BD para contar la cantidad de usuarios por país, el script es el siguiente:

Código PHP:
<ul>
<?php
    
include('bd.php');
    
$sql mysql_query("SELECT pais, COUNT(*) FROM usuarios GROUP BY pais ORDER BY COUNT(*) DESC LIMIT 0,5") or die(mysql_error());
    
$muestra mysql_result($sql0);
    while(
$row mysql_fetch_array($sql)) {
        
$pais $row['pais'];
?>
        <li><?=$pais?><?=$muestra?> usuarios</li>
<?php
    
}
?>
</ul>
He probado el SELECT en mi phpMyadmin y funciona correctamente, pero al ejecutar el script me arroja el siguiente resultado:

Cita:
* MEXICO: PERU usuarios
* ARGENTINA: PERU usuarios
* ESPAÑA: PERU usuarios
* CHILE: PERU usuarios
Como puede ver, no salen los 5 registros que puse en el LIMIT y donde deberían salir la cantidad de usuarios por país aparece "PERU", qué estoy haciendo mal?, gracias de antemano.

Saludos.
  #2 (permalink)  
Antiguo 18/03/2008, 21:34
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Duda con SELECT Y GROUP BY

lo has intentado con WHERE?

Código PHP:


    $sql 
mysql_query("SELECT pais, COUNT(*) FROM usuarios WHERE pais='$pais' ORDER BY COUNT(*) DESC LIMIT 5") or die(mysql_error()); 

un saludo
  #3 (permalink)  
Antiguo 18/03/2008, 21:57
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Duda con SELECT Y GROUP BY

para lo que quiero hacer el WHERE no me es necesario, además que esa variable $pais no tiene ningún valor, gracias de todas maneras.

Saludos.
  #4 (permalink)  
Antiguo 18/03/2008, 22:29
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 3 meses
Puntos: 7
Re: Duda con SELECT Y GROUP BY

Valor, probá ponerle alias a los campos que pedís, a mí una vez me pasó que no escribía bien un campo, le puse un alias y llamé ese alias y anduvo NO-TA-BLE...

Espero que eso solucione ese enredo. Saludos.
  #5 (permalink)  
Antiguo 18/03/2008, 22:51
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Duda con SELECT Y GROUP BY

Pues sigue sin funcionar, gracias de todas maneras Adolfiten
  #6 (permalink)  
Antiguo 18/03/2008, 23:22
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 17 años, 8 meses
Puntos: 223
Re: Duda con SELECT Y GROUP BY

Primero intenta cambiando el query a:

Código:
SELECT pais, COUNT(*) AS cuenta FROM usuarios GROUP BY pais ORDER BY cuenta DESC LIMIT 0,5"
Luego hace falta que asignes el valor de la columna cuenta a una variable:

Código PHP:
while($row = mysql_fetch_array($sql)) {
        $pais = $row['pais'];
        $cuenta = $row['cuenta'];
?>
        <li><?=$pais?><?=$cuenta?> usuarios</li>
<?php
    
}
__________________
Blog: JavierAroche.com - Twitter: @j_aroche
  #7 (permalink)  
Antiguo 19/03/2008, 01:19
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Duda con SELECT Y GROUP BY

Eso mismo!!, la consulta ya la tenía así, sólo dudaba en el PHP que imprimía los datos, ahora ya está bien, gracias j_aroche
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 08:35.