Foros del Web » Programando para Internet » PHP »

Ordenar datos en sql

Estas en el tema de Ordenar datos en sql en el foro de PHP en Foros del Web. Hola a todos nuevamente... el problema ahora es que estoy aprendiendo a trabajar con tablas ordenadas e hice este script... Código PHP: $sql  = "select pais, count(1) from contar grouped by pais"; $res = mysql_query($sql); $can = mysql_num_rows($res); ...
  #1 (permalink)  
Antiguo 08/04/2012, 20:14
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Pregunta Ordenar datos en sql

Hola a todos nuevamente... el problema ahora es que estoy aprendiendo a trabajar con tablas ordenadas e hice este script...

Código PHP:

$sql  = "select pais, count(1) from contar grouped by pais";

$res = mysql_query($sql);
$can = mysql_num_rows($res);

while($fila = mysql_fetch_array($resultado)){

?>
<?php echo($fila['pais']);?>

<?php ?>

<?php
mysql_close
();
?>
tengo una tabla llamada contar y una columna llamada pias lo que me trae una lista de distintos paices...

Lo que quiero hacer es agrupar los paices repetidos y me los traiga en total, por ejemplo: tengo alemania repetida 3 veces y Argentina 8 y la lista tendria que ser algo asi:

Alemania 3
Argentina 8 y asi....

Espero me ayuden.... Gracias
__________________
Zreep
  #2 (permalink)  
Antiguo 08/04/2012, 21:31
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Ordenar datos en sql

Si le dices a la consulta que te agrupe los país solo te va atraer un solo país en caso de haber redundancia, la otra cosa es que no entiendo para que quieres que la consulta te devuelva la cantidad de países repetido.
  #3 (permalink)  
Antiguo 08/04/2012, 21:35
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Ordenar datos en sql

Leyendo y buscando... fui haciendo algo como esto...

Código PHP:
$sql  = "SELECT count(*) AS pais FROM contar group by pais";

//$sql  = "select sum(cant) from (select pais, count(1) cant from contador group by pais);";
$res3 = mysql_query($sqls);

$res = mysql_query($sql);
$can = mysql_num_rows($res);

while($fila = mysql_fetch_array($res)){

?>
<?php echo($fila['pais']);?>
<br>
<?php ?>

<?php
mysql_close
();
?>
los resultados me los tira bien... seria en este caso 1 y 3... 1 por Alemania y 3 por Argentina pero ahora el problema es como poner el pais corespondiente...

Porfa.... ayudenme...
__________________
Zreep
  #4 (permalink)  
Antiguo 08/04/2012, 21:35
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 9 meses
Puntos: 32
Respuesta: Ordenar datos en sql

Hola,
Me parece que es tan simple como lo que ya tienes, aunque me parece que "GROUPED" esta mal escrito debe ser "GROUP", bueno funcionaria asi:

Código PHP:
Ver original
  1. $q = mysql_query('SELECT pais, count(*) as cantidad FROM contar GROUP BY pais');
  2. while( $r = mysql_fetch_array($q) ) {
  3.     echo $r[pais].' '.$r[cantidad].'<br />';
  4. }

Saludos.
  #5 (permalink)  
Antiguo 08/04/2012, 21:53
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Ordenar datos en sql

IXtremeLT, no se por que no me funciono lo que me pasaste y tampoco encuentro una respuesta logica... pero lo que hiciste me ayudo a pensar mas y al codigo que habia hecho solo agrege pais y luego count(*)....

algo asi;

Código PHP:
$sql  = "SELECT pais, count(*) FROM contar group by pais";
$res = mysql_query($sql);
$can = mysql_num_rows($res);

while($fila = mysql_fetch_array($res)){

?>
<?php echo($fila['pais']);?> <?php echo($fila['count(*)']);?>
<br>
<?php ?>

<?php
mysql_close
();
?>

//Lo cual como resultado me da: 

Argentina 3
Alemania 1
Brasil 2
No se que esta mal pero esto funciona... y no se tampoco por lo que me pasaste no funciono... pero gracias igual por que me ayudaste y mucho...sin desmerecer a los otros usuarios...jeje

Saludos
__________________
Zreep
  #6 (permalink)  
Antiguo 08/04/2012, 22:00
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 9 meses
Puntos: 32
Respuesta: Ordenar datos en sql

Jeje sabra por que no te funciono tal como te lo pase, pero veo que en la consulta quitaste el alias "cantidad" de "count(*)", pero sin alias puede llamarse como tal, es decir "count(*)", asi que igual esta bien como lo pusiste, problema resuelto, saludos.
  #7 (permalink)  
Antiguo 08/04/2012, 22:06
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Ordenar datos en sql

Cita:
Iniciado por IXtremeLT Ver Mensaje
Jeje sabra por que no te funciono tal como te lo pase, pero veo que en la consulta quitaste el alias "cantidad" de "count(*)", pero sin alias puede llamarse como tal, es decir "count(*)", asi que igual esta bien como lo pusiste, problema resuelto, saludos.
Que buen chat...el de tu pagina... como puedo usarlo o bajarlo? por que tengo uno pero es muy cholulo... lo baje de Tutorialzine
__________________
Zreep
  #8 (permalink)  
Antiguo 10/03/2013, 07:36
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Ordenar datos en sql

Hace un tiempo temine de hacer esto, pero ahora lo estoy usando nuevamente para un cliente pero tengo una duda, por que se repiten los valores, ejemplo...

Código PHP:
$sql  = "SELECT pais, count(*) FROM contar group by pais";
$res = mysql_query($sql);
$can = mysql_num_rows($res);

while($fila = mysql_fetch_array($res)){

?>
<?php echo $fila['pais'];?> <?php echo $fila['count(*)'];?>
<br>
<?php ?>

<?php
mysql_close
();
?>

//Lo cual como resultado me da: 

Argentina 3
Argentina 2
Alemania 1
Brasil 2
Brasil 5
No me esta dejando Argentina 5, Brasil 7, etc... Que esta pasando?
__________________
Zreep

Etiquetas: mysql, sql, tabla
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 10:15.