Fórum Listar com tabelas relacionais [Duvida] #580664
27/04/2017
0
Tenho duas tabelas 'loja' e 'cliente', cada cliente pertence a uma loja, queria listar o nome das lojas da tabela 'loja' e a quantidade de clientes de cada loja.
Alguém pode me ajudar ?
Tentei desta forma, mas lista a mesma loja mais de uma vez e 1 registo para cada linha.
<?php
$sql = "SELECT * FROM c_loja INNER JOIN c_user ON c_user.user_loja = c_loja.loja_id WHERE loja_id = user_loja";
$result = $PDO->query($sql);
//$rows2 = $result->fetch();
$count=0;
while($rows = $result->fetch(PDO::FETCH_OBJ)){
$count = count($rows);
echo "
<tr>
<td>".$rows->loja_nome."</td>
<td>".$count."</td>
</tr>
";
}
?> Mauricio Mikulski
Curtir tópico
+ 0Posts
27/04/2017
Marcio Souza
SELECT l.nome_loja, count(c.id_cliente) FROM loja l, cliente c WHERE l.id_loja = c.id_loja_fk GROUP BY l.id_loja;
Gostei + 0
27/04/2017
Mauricio Mikulski
SELECT l.nome_loja, count(c.id_cliente) FROM loja l, cliente c WHERE l.id_loja = c.id_loja_fk GROUP BY l.id_loja;
Não deu ainda...
Olha como fucou...
<?php
$sql = "SELECT *,count(user_id) FROM c_loja,c_user WHERE user_loja=loja_id GROUP BY loja_id";
$result = $PDO->query($sql);
//$rows2 = $result->fetch();
$count=0;
while($rows = $result->fetch(PDO::FETCH_OBJ)){
$count = count($rows->user_id);
echo "
<tr>
<td>".$rows->loja_nome."</td>
<td>".$count."</td>
</tr>
";
}
?> Está imprimindo desta forma:
Loja1 1
Loja 2 1
Sendo que, eu tenho 3 lojas cadastradas e na loja1 tem 2 clientes.
Gostei + 0
27/04/2017
Luiz Santos
$sql = "SELECT loja_id, count(user_id) AS qtd FROM c_loja,c_user WHERE user_loja=loja_id GROUP BY loja_id";
Veja se funciona.
Grande abraço
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)