Ir para conteúdo
Fórum Script Brasil
  • 0

[ajuda SQL + estrutura de exibição]


Allanrf

Pergunta

Olá pessoal do fórum, beleza? :D

Bom estou com um problema aqui e já quebrei a cabeça, mas não consigo

resolver...

Tenho de criar uma listagem de usuários X cliente X obras X

projetos_recursos

Então basicamente tenho essa estrutura:

tabela usuarios:

id_usuario | nome | login | senha

tabela cliente:

id_cliente | nome | ...

tabela obras:

id_obra | id_cliente | nome_obra | ...

tabela projetos_recursos:

id | id_usuario | id_obra

Então tenho uma tabela de ligação projetos_recursos para vincular um

usuário a uma determinada obra.

O que quero fazer na listagem é:

Eu listo os usuários do sistema normalmente, quando clico nele envio

por Ajax o id_usuario para uma outra página, nessa página preciso

pegar todos os projetos que estão vinculados a esse usuário e os

clientes donos desses projetos...

Eu consigo listar mostrando Usuário -> Cliente -> Projeto, PORÉM o

cliente é listado várias vezes, se eu tenho um cliente com 3 projetos

esse cliente é listado 1 vez para cada projeto, o que quero é que o

cliente seja listado 1 unica vez e abaixo dele venha todos os projetos

desse cliente, porém não consigo achar a estrutura correta para

isso...

meu SQL está assim:

$sql = "SELECT recursos.*, projetos.nome_obra as nome_obra,
clientes.nome_completo as nome_cliente
                               FROM tb_projetos_recursos recursos
                               INNER JOIN tb_obras projetos
                               ON projetos.id = recursos.id_projeto
                               INNER JOIN tb_clientes clientes
                               ON clientes.id = projetos.id_cliente
                               WHERE recursos.id_usuario = '$id_usuario'
                               order by clientes.id
                       ";
Com esse SQL eu consigo todos os projetos que o usuário está alocado, o nome da obra e o nome do cliente, tudo o que quero, porém na hora de exibir é que está o problema...
$busca_projetos_usuarios = @mysql_query($sql);
$total = @mysql_num_rows($busca_projetos_usuarios);
if($total > 0){
   for($j=0; $j<$total; $j++){
       $id_projeto = @mysql_result($busca_projetos_usuarios,$j,"id_projeto");
       $id_usuario = @mysql_result($busca_projetos_usuarios,$j,"id_usuario");
       $nomeCliente = @mysql_result($busca_projetos_usuarios,$j,"nome_cliente");
       $nome_projeto = @mysql_result($busca_projetos_usuarios,$j,"nome_obra");
       ?>
       <tr>
             <td width="30%" style="padding-left:70px;">-&nbsp;
                 <span class='abre'>
                       <?php
                               echo $nomeCliente;
                       ?>
                 </span>
                 <span><?=$nome_projeto?></span>&nbsp;&nbsp;
              </td>
         </tr>
         <?
   }
}

é listado o cliente1 uma vez a cada projeto dele, então se ele tem

tres projetos é listado:

Cliente1 - Projeto1

Cliente1 - Projeto2

Cliente1 - Projeto3

O que quero é que seja listado Cliente1 - Projeto 1 Projeto2 Projeto3

Não sei se ficou muito claro minha dúvida, se alguém puder ajudar eu

agradeço, já perdi muito tempo com isso e não consigo achar uma

solução...

Obrigado.

Editado por Allanrf
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

distinct não da certo, se eu colocar ele funcionaria quase como um group by, me dando os clientes que quero (que são 3), porém não me daria todos os projetos desses clientes...

o sql em si acho que está certo, porque ele me retorna tudo o que eu quero, o que está errado é a estrutura de exibição que eu quero exibir os clientes e abaixo deles seus projetos...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...