Foros del Web » Programando para Internet » PHP »

Otra forma de recoger usuarios por paises?

Estas en el tema de Otra forma de recoger usuarios por paises? en el foro de PHP en Foros del Web. Código PHP: $q_ar  =  mssql_query ( "SELECT count(*) FROM Miembros WHERE Country='ar'" ); $ar  =  mssql_fetch_row ( "$q_ar" ); $q_ve  =  mssql_query ( "SELECT count(*) FROM Miembros WHERE Country='ve'" ); $ve  =  mssql_fetch_row ( "$q_ve" ...
  #1 (permalink)  
Antiguo 12/10/2008, 09:09
 
Fecha de Ingreso: abril-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 1
Otra forma de recoger usuarios por paises?

Código PHP:
$q_ar mssql_query("SELECT count(*) FROM Miembros WHERE Country='ar'");
$ar mssql_fetch_row("$q_ar");
$q_ve mssql_query("SELECT count(*) FROM Miembros WHERE Country='ve'");
$ve mssql_fetch_row("$q_ve");
$q_es mssql_query("SELECT count(*) FROM Miembros WHERE Country='es'");
$es mssql_fetch_row("$q_es");
Etc.. con 30 paises
Eso es lo que hago para seleccionar usuarios de cada país, osea mostrar usuarios solo de España o Argentina, etc.

El problema es que tengo 30 paises por poner y son 30 lineas, habrá otra forma de hacer el query "seleccionar usuarios por paises" ?.
  #2 (permalink)  
Antiguo 12/10/2008, 10:01
 
Fecha de Ingreso: mayo-2007
Mensajes: 348
Antigüedad: 17 años
Puntos: 9
Respuesta: Otra forma de recoger usuarios por paises?

Hola Alejo18;

Creo que es fácil... a ver si te puedo echar una mano:


Podrías tener en tu base de datos un número que identificara cada país:

España=1
Argentina=2

Luego con select de html normal de toda la vida :)

Se lo podrías pasar Por Get o Por Post:
Código php:
Ver original
  1. $pais=$_GET['pais_Numero'];
  2.  
  3. $query=select count(*) from Miembros where numeroCountry="$pais";

Algo así.
Espero que te haya aclarado algo:


Última edición por Nathan_1979; 12/10/2008 a las 11:53
  #3 (permalink)  
Antiguo 13/10/2008, 19:34
 
Fecha de Ingreso: abril-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 1
Respuesta: Otra forma de recoger usuarios por paises?

Es lo mismo, yo quiero imprimir los resultados de todos los países en una sola página.
  #4 (permalink)  
Antiguo 13/10/2008, 19:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Otra forma de recoger usuarios por paises?

En ese caso vas a tener que jugar con la consulta, investiga como usar GROUP BY.

Saludos.
  #5 (permalink)  
Antiguo 16/11/2008, 22:22
 
Fecha de Ingreso: abril-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 1
Respuesta: Otra forma de recoger usuarios por paises?

Cita:
Iniciado por GatorV Ver Mensaje
En ese caso vas a tener que jugar con la consulta, investiga como usar GROUP BY.

Saludos.
Si creo que me va servir
Entonces sería así
SELECT Country,COUNT(*) FROM Miembros GROUP BY Country;
Pero como identificaría los paises?
  #6 (permalink)  
Antiguo 17/11/2008, 07:40
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Otra forma de recoger usuarios por paises?

O directamente dos querys:

Código php:
Ver original
  1. <?
  2. $rPaises = mysql_query("Select * from paises");
  3. while( $rsPaises = mysql_fetch_assoc( $rPaises ){
  4.  $rUsuarios = mysql_query("seelct * from usuarios where pais = '{$rsPaises['iso']}'");
  5.  while( $rsUsuarios = mysql_fetch_assoc($rUsuarios) ){
  6.   ?>
  7.         <!--HTML CODE-->
  8.         <?
  9.  }
  10.  mysql_free_result($rUsuarios);
  11. }
  12. ?>
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #7 (permalink)  
Antiguo 17/11/2008, 09:32
 
Fecha de Ingreso: abril-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 1
Respuesta: Otra forma de recoger usuarios por paises?

Gracias, Pero en realidad no creo que sean 2 querys
En el while se harían varias querys, y lo que quiero es evitar hacer muchos, ahora estoy intentando hacerlo con GROUP BY.
  #8 (permalink)  
Antiguo 17/11/2008, 12:28
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Otra forma de recoger usuarios por paises?

Vos sabrás bien que tendrás que hacer, pero muchas veces cruzar dos tablas o usar group by no es lo mejor, o no es mejor a usar dos queryes.

En si, si tenés muchas consultas por ahí lo mejor es segmentar esto en varios pasos, ej: paso 1 selecciono país, paso 2 muestro los usuarios. Esto podés hasta hacer muy bonito usando JS y hasta AJAX; porque tal vez no sea practico listar tantos registros en una única página.

PD: SELECT Country, COUNT(*) total FROM Miembros GROUP BY Country, tendrás una posición $rs['Country'] y una $rs['total'], no habría leído eso, y no sé si mi comentario te lo soluciona.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #9 (permalink)  
Antiguo 17/11/2008, 13:36
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Respuesta: Otra forma de recoger usuarios por paises?

yo que tu utilizaria objetos para resolver la gran suma de queries...
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #10 (permalink)  
Antiguo 17/11/2008, 13:45
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Otra forma de recoger usuarios por paises?

Hola eddwinpaz, como aplicaría? Cual es la ventaja en este caso? contanos un poco más sobre tu comentario.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #11 (permalink)  
Antiguo 17/11/2008, 13:57
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Respuesta: Otra forma de recoger usuarios por paises?

Código PHP:

<?php

   
class  miClase {


function 
miClase(){
}

function 
conectarme($host,$usr,$pw){
mysql_connect($host,$usr,$pw) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());
}

function 
query($sql)
{
  
$query mysql_query($sql) or die(mysql_error());
  return 
$query;


function 
contador($tabla,$tabla2)
{
   
$sql "SELECT count($tabla) FROM $tabla2";
   
$query $this->query($sql);
   
$this->total $query;
   return 
$query;
}

function 
numero_tablas()
{
  
$total mysql_num_rows($his->total) or die(mysql_error());
  return 
$total;
}

function 
mostrarTotalTablas()
{
   echo 
$this->numero_tablas;
  return ;
}
}

$cont =  new miClase;
$cont->conectarme('localhost','usuario','clave','base_datos');

$cont->contador('talba','tabla');
$cont->mostrarTotalTablas();


?>
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
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 14:02.