Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hannots

Nº de vezes que um campo aparece

Recommended Posts

Olá galera do Imasters, o problema é o seguinte:

 

sou novato em PHP e estou com dificuldade em fazer uma consulta a um bd, no Mysql, que me resulte no nº de vezes que um campo aparece.

 

Vou dar um exemplo.

 

Tenho um cadastro na tabela "usuários" num banco de dados. Nesta tabela tem um campo "Cidade". Gostaria de fazer uma consulta que desse como resultado o nº de cadastrados daquela cidade.

 

Tal como:

 

 

Porto Alegre: 80 cadastrados

São PAulo: 120 cadastrados

Sinimbu: 11 cadastrados

Passo Merso: 127 cadastrados

Curitiba: 80 cadastrados.... e assim por diante.

 

Alguém poderá dar-me esta ajuda.

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

$consulta = mysql_query("select cidades FROM usuarios Where cidades = 'nome_cidade'");depois $resultado = mysql_num_rows("$consulta");echo $resultado;acho que é isto

Compartilhar este post


Link para o post
Compartilhar em outros sites

$consulta = mysql_query("select cidades FROM usuarios Where cidades = 'nome_cidade'");depois $resultado = mysql_num_rows("$consulta");echo $resultado;acho que é isto

Na verdade, eu quero que apareça automaticamente todas as cidades com o respectivo número de vezes que ela aparece.Neste exemplo, teria que ir cidade por cidade. Não sei se fui claro desta vez. ESpero que alguém possa me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP
<?php
$consulta = mysql_query("select cidades FROM usuarios");
while ($cidades = mysql_fetch_array($consulta)) {
        $cid = $cidades['cidades'];
        $consulta1 = mysql_query("select cidades FROM usuarios Where cidades = '$cid'");
        $total_cidades = mysql_num_rows($consulta1);
        echo "$cid";
        echo " - ";
        echo "$total_cidades ";
        echo "<br>";
}
 
?>

 

 

fiz isto meio no joelho mas acho k é o que você quer

Compartilhar este post


Link para o post
Compartilhar em outros sites

É esta a idéia. Também tentei fazer deste jeito mas dá o seguinte erro:mysql_num_rows(): supplied argument is not a valid MySQL result resource.No exemplo, as cidades seriam tiradas de outra tabela, com as cidades válidas, chamada "cidades".Alguém mais pode ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso da esse erro pk os campos estao diferentes mostra a estrutura das base dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

É esta a idéia. Também tentei fazer deste jeito mas dá o seguinte erro:mysql_num_rows(): supplied argument is not a valid MySQL result resource.No exemplo, as cidades seriam tiradas de outra tabela, com as cidades válidas, chamada "cidades".Alguém mais pode ajudar?

Use "Group By" !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom segue aí,Tenho uma tabela chamada "cidades", com campos como: nome_cidade, estado, pais, população..etcOutra tabela com usuários: nome_usuario, idade, cidade, telefone...etc.Pois então, gostaria de acessar o banco de dados e pegar da tabela usuários a quantidade de usuários daquela cidade, sendo que as cidades válidas estão na tabela "cidades".E gerasse uma tabela com o resultado tal como este:Porto alegre: 20 usuáriosPorto Velho: 28 usuáriosRondonia: 01 usuários...etc..E isso aí, alguma sugestão?Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim,

 

<?php$consulta = mysql_query("select nome_cidade FROM cidades");while ($cidades = mysql_fetch_array($consulta)) {		$cid = $cidades['nome_cidade'];		$consulta1 = mysql_query("select cidade FROM usuarios WHERE cidade = '$cid'");		$total_cidades = mysql_num_rows($consulta1); 		echo "$cid";		echo ":";		echo "$total_cidades ";		echo " usuário(s)";		echo "<br>";} ?>
$consulta1 = mysql_query("select cidade FROM usuarios WHERE cidade = '$cid'"); <--- aqui eu nao sei se a sua tabela usuários tem acento se tiver troque por:

 

$consulta1 = mysql_query("select cidade FROM usuários WHERE cidade = '$cid'");

 

eu teste aqui e deu certo se quiser passo o link para voce ver :)

 

retorno:

 

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Nova página 2</title></head><body>roma - 26 <br>brasil - 26 <br></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A solução acima é um tanto quanto fraca, pegando leve. No jargão técnico, puro POG. Neste caso quem deve entrar em jogo é o potencial do banco de dados... E para isso, existe a cláusula GROUP BY. Veja:

 

SELECT `cidade`, COUNT(`cidade`) AS `qnt`FROM `usuarios` GROUP BY `cidade`
Pronto. Todas as informações numa só consulta, bastando apenas iterá-la. ;)

 

[]s :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.