Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal preciso de ajuda para realizar uma consulta que envolve varias tabelas relacionadas.
tenho as seguintes tabelas: cliente, sexo, endereco_cliente e cidade. A tabela cliente se relaciona com a tabela sexo,a tabela endereco_cliente se relaciona com as tabelas cliente e cidade.
Eu preciso fazer um menu drop down que liste todas as opções de sexo, ao usuário passar o mouse sobre a opção sexo, abre o menu e lista as cidades que tem clientes daquele sexo, por ex: se passar o mouse encima do sexo masculino, vai listar são paulo (5), ribeirão preto (3), os números são referente a quantidade de clientes daquele sexo na cidade, e deve listar somente as cidade que contenham clientes daquele sexo.
Abaixo segue um exemplo que fiz mas não esta funcionando corretamente:
<ul class="nav navbar-nav">
<?php
$busca_s = mysql_query("SELECT * FROM sexo ORDER BY SEXO_ID ASC");
while ($row_s = mysql_fetch_assoc($busca_s)){
$sexo = $row_s['SEXO_ID'];
?>
<li class="dropdown"><a href="#" class="dropdown-toggle js-activated"><?php echo $row_s['SEXO_DESC']; ?> <span class="caret"></span></a>
<ul class="dropdown-menu">
<?php
$busca_cidade = mysql_query("SELECT * FROM cidade C INNER JOIN endereco_cliente E ON C.CIDADE_ID = E.ENDERECO_CIDADE INNER JOIN cliente T ON E.ENDERECO_CLIENTE = T.CLIENT_ID WHERE T.CLIENT_SEXO='$sexo' ORDER BY C.CIDADE_NOME ASC");
while ($row_end = mysql_fetch_assoc($busca_cidade)){
$cidade = $row_end['CIDADE_ID'];
$busca_count = mysql_query("SELECT * FROM endereco_cliente WHERE ENDERECO_CIDADE='$cidade'");
$count = mysql_num_rows($busca_count);
?>
<li><a href="#!"><?php echo $row_end['CIDADE_NOME']; ?> <?php echo $count; ?></a></li>
<?php } ?>
</ul>
</li>
<?php } ?>
do jeito que está ele lista as opções de sexo, e repete as cidades com numero exato de clientes, mas repete as cidade, como se fosse clientes. ex: sem tem 5 pessoas em são ele lista 5 veses a cidade de são paulo com o numero 5 na frente
agradeço se alguém puder me ajudar
oi Carlos, exatamente isto, ao passar o mouse sobre a opção sexo, vai listar as cidades e numero de clientes daquela cidade referente aquele sexo, e só pode listar cidades que contenham clientes cadastrados
Certo. Mas vc já conseguiu fazer alguma coisa....??
ou nada..?³
Só pra sabermos como tu pode ser ajudado?
sim ja fiz algo, este código que postei, o problema é que ele repete as cidades, vamos supor que na cidade de são paulo tem 3 clientes do sexo feminino, ele mostra 3 vezes a cidade de são paulo com o numero 3 na frente que é o numero de clientes, e quero que mostre 1 vez a cidade de são paulo com o numero de clientes na frente.
pessoal consegui resolver, segue abaixo o código:
<ul>
<?php
$busca_s = mysql_query("SELECT * FROM sexo ORDER BY SEXO_ID ASC");
while ($row_s = mysql_fetch_assoc($busca_s)){
$sexo = $row_s['SEXO_ID'];
?>
<li class="dropdown"><a href="#" class="dropdown-toggle js-activated"><?php echo $row_s['SEXO_DESC']; ?> <span class="caret"></span></a>
<ul class="dropdown-menu">
<?php
$busca_cidade = mysql_query("SELECT * FROM cidade ORDER BY CIDADE_NOME ASC");
while ($row_end = mysql_fetch_assoc($busca_cidade)){
$cidade = $row_end['CIDADE_ID'];
$busca_count = mysql_query("SELECT * FROM endereco_cliente E INNER JOIN cliente C ON E.ENDERECO_CLIENTE = C.CLIENT_ID WHERE ENDERECO_CIDADE='$cidade' AND C.CLIENT_SEXO='$sexo' AND C.CLIENT_STATUS='1'");
$count = mysql_num_rows($busca_count);
if($count != 0){
?>
<li><a href="#!"><?php echo $row_end['CIDADE_NOME']; ?> (<?php echo $count; ?>)</a></li>
<?php } } ?>
</ul>
</li>
<?php } ?>
</ul>
Carlos Antoliv muito obrigado pela sua interação
ia te passar um código..rs
mas fico feliz que tenha conseguido e postado a solução.
Não entendi.
Até aqui entendi.
Só não entendi o que tu precisa realmente.
Tu precisa escolher num list e aparecer no outro?