hannots 0 Denunciar post Postado Agosto 22, 2007 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
LaBoss 0 Denunciar post Postado Agosto 22, 2007 $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
hannots 0 Denunciar post Postado Agosto 22, 2007 $consulta = mysql_query("select cidades FROM usuarios Where cidades = 'nome_cidade'");depois $resultado = mysql_num_rows("$consulta");echo $resultado;acho que é istoNa 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
LaBoss 0 Denunciar post Postado Agosto 22, 2007 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
hannots 0 Denunciar post Postado Agosto 22, 2007 É 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
LaBoss 0 Denunciar post Postado Agosto 22, 2007 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
Jorge Francisco 0 Denunciar post Postado Agosto 22, 2007 É 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
hannots 0 Denunciar post Postado Agosto 22, 2007 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
LaBoss 0 Denunciar post Postado Agosto 22, 2007 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
PauloFreitas 0 Denunciar post Postado Agosto 22, 2007 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
hannots 0 Denunciar post Postado Agosto 24, 2007 Valeu pela força!Mas gostaria de saber como faço para mostrar o resultado?VAleu! Compartilhar este post Link para o post Compartilhar em outros sites
hannots 0 Denunciar post Postado Agosto 24, 2007 Opa! Já consegui usando "mysql_fetch_array". Valeu pela força! Compartilhar este post Link para o post Compartilhar em outros sites