LEFT JOIN com 6 tabelas
Fala galera!
Já estou com dor de cabeça num sisteminha que estou montando aqui para minha assistência técnica.
Resumindo:
Controlo meus clientes hoje em excel e começou a aumentar o volume, então, estou passando tudo para MYSQL AND PHP.
Sou iniciante em programação WEB.
Onde estou:
Montei a página inicial que carrega todos os clientes cadastrados e outras informações básicas, até aí Ok.
Ao clicar em qualquer um destes clientes, passo as informações via URL/GET para uma outra página que possui os detalhes do cliente.
Cada cliente pode ter mais de um computador, mais de um contato, mais de um periferico, mais de um atendimento e esta página "detalhes" precisa repetir todas os itens quando > 1.
Todos estes outros campos que podem possuir mais de um estão em tabelas. Ou seja, tenho além da tabela principal (clientes) + 5 outras tabelas.
O que está acontecendo:
Ao resgatar os dados do cliente, por exemplo, se ele tiver 10 computadores, os outros dados, perifericos, contatos, atendimentos, etc se repetirão 10 vezes também.
Estou postando o meu código para que vocês possam comentar onde estou errando.
Eu creio que esteja dentro do LEFT JOIN e/ou GROUP BY.
O que acham?
<?php
$cliente = $_GET['cliente'];
$sql = "SELECT
c.*,
pc.*,
pc.descricao_computador AS descricao_pc,
ctt.*,
prf.*,
at.*,
f.*
FROM clientes c
LEFT JOIN computadores pc ON c.id_cliente = pc.id_cliente
LEFT JOIN contatos ctt ON c.id_cliente = ctt.id_cliente
LEFT JOIN perifericos prf ON c.id_cliente = prf.id_cliente
LEFT JOIN atendimentos at ON c.id_cliente = at.id_cliente
LEFT JOIN funcionarios f ON at.id_funcionario = f.id_funcionario
WHERE (c.id_cliente = '$cliente')
ORDER BY contato_nome, descricao_pc ASC";
$queryc = mysql_query($sql);
$querypc = mysql_query($sql);
$queryctt = mysql_query($sql);
$queryprf = mysql_query($sql);
$queryat = mysql_query($sql);
?>
// ### RECUPERAÇÃO NA TELA ###
// DADOS DO CLIENTE - TENDO APENAS 1 RESULTADO FILTRADO PELO ID
<?php $clientes = mysql_fetch_assoc($queryc); ?>
DADOS AQUI NO FORMATO <?php echo $VARIAVELACIMA['CAMPO_TABELA'] ?>
// DADOS DOS CONTATOS - PODENDO TER MAIS DE UM RESULTADO
<?php
while ($ctts = mysql_fetch_assoc($queryctt)) {
?>
DADOS AQUI NO FORMATO <?php echo $VARIAVELACIMA['CAMPO_TABELA'] ?>
<?php
}
?>
// DADOS DOS COMPUTADORES - PODENDO TER MAIS DE UM RESULTADO
<?php
while ($pcs = mysql_fetch_assoc($querypc)) {
?>
DADOS AQUI NO FORMATO <?php echo $VARIAVELACIMA['CAMPO_TABELA'] ?>
<?php
}
?>
// DADOS DOS PERIFERICOS - PODENDO TER MAIS DE UM RESULTADO
<?php
while ($prfs = mysql_fetch_assoc($queryprf)) {
?>
DADOS AQUI NO FORMATO <?php echo $VARIAVELACIMA['CAMPO_TABELA'] ?>
<?php
}
?>
// DADOS DOS ATENDIMENTOS - PODENDO TER MAIS DE UM RESULTADO
<?php
while ($ats = mysql_fetch_assoc($queryat)) {
?>
DADOS AQUI NO FORMATO <?php echo $VARIAVELACIMA['CAMPO_TABELA'] ?>
<?php
}
?>Forte abraço e agradeço desde já.
Ton
Discussão (4)
Carregando comentários...