Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcosfj1

[Resolvido] Mostrar Colunas de nomes iguais de tabelas diferentes

Recommended Posts

Seguinte o titulo é confuso mas vou explicar melhor....tenho a seguinte consulta

 

$sql ="SELECT P.id_produto, P.codigo, P.nome, PAE.id_produto, PAE.id_produto_atributo_opcao, PAO.nome, PAT.id_produto_atributo, PAT.nome
	FROM produto P
	INNER JOIN produto_atributo_estoque PAE ON PAE.id_produto= P.id_produto
	INNER JOIN produto_atributo_opcao PAO ON PAE.id_produto_atributo_opcao = PAO.id_produto_atributo_opcao
	INNER JOIN produto_atributo PAT ON PAT.id_produto_atributo= PAO.id_produto_atributo";

Como vem é uma consulta bem complexa pois tenho que trabalhar com mtas tabelas, mas ela esta funcionando, a dificuldade que estou enfrentando esta nas colunas de nomes iguais mas que sao de tabelas diferentes que sao P.nome(tabela produto) PAO.nome(tabela produto_atibuto_opcao) PAT.nome(tabela produto_atributo)

Mas a dificuldade esta na hora de mostrar, pois eu queria q fosse assim:

 

<tr class="grid_titulo">
      <td width="11%" align="left" >Codigo</td>
      <td width="22%" align="left" >Produto</td>
      <td width="16%" align="left" >Atributo</td>
      <td width="25%" align="left" >Opções</td>
      <td width="26%" align="left" >Estoque das Opções</td>
</tr>
$req = mysql_query($sql) or die(mysql_error());
	
	//
	
	while ($cp = mysql_fetch_array($req)) {
		
	
?>
    <tr class="grid_registro">
      <td align="left"><?=$cp['codigo'] ?></td>
      <td align="left"><?=$cp['P.nome'] ?></td>  //AQUI DEVERIA MOSTRAR O NOME DO PRODUTO
      <td align="left"><?=$cp['PA.nome'] ?></td> //AQUI DEVERIA MOSTRAR O NOME DO ATRIBUTO
      <td align="left"><?=$cp['PAO.nome'] .'/'.$cp['nome']?></td> //AQUI DEVERIA MOSTRAR O NOME DA OPCAO
      <td align="left"><?=$cp['qt_estoque'] ?></td>
    </tr>
    <?php }?>
  </table>

Entao o problema é q desse jeito nao dá certo e se eu tirar o nome das tabelas P, PA, PAO o codigo se confude e só mostra um deles os outros ficam em branco, alguem sabe como eu poderia fazer?

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

com ALIAS

 

P.nome AS nome_produto, PAO.nome AS nome_pao, PAT.nome AS nome_pat
ai você usa:

<td><?php echo $cp['nome_produto']; ?></td>
      <td><?php echo $cp['nome_pat']; ?></td>
      <td><?php echo $cp['nome_pao']; ?></td>

só isso :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

cria apelido para coluna

SELECT P.id_produto, P.codigo, P.nome as nome1, PAE.id_produto, PAE.id_produto_atributo_opcao, PAO.nome as nome2, PAT.id_produto_atributo, PAT.nome as nome3...
e na hora de exibir

echo
"<tr class='grid_registro'>
      <td align='left'>{$cp['codigo']}</td>
      <td align='left'>{$cp['nome1']}</td>
      <td align='left'>{$cp['nome2']}</td>
      <td align='left'>{$cp['nome3']}/{$cp['nome1']}</td>
      <td align='left'>{$cp['qt_estoque']}</td>
    </tr>";
*edit

n tinha visto post anterior

Compartilhar este post


Link para o post
Compartilhar em outros sites

com ALIAS

 

P.nome AS nome_produto, PAO.nome AS nome_pao, PAT.nome AS nome_pat
ai você usa:

<td><?php echo $cp['nome_produto']; ?></td>
      <td><?php echo $cp['nome_pat']; ?></td>
      <td><?php echo $cp['nome_pao']; ?></td>

só isso :lol:

 

 

Hum parece simples vou tentar aqui e ja respondo se consegui

 

valeu

 

Nossa cara que simples hehehe...deu certo demais haha....agora só preciso reformular minha consulta melhor pra mostrar tudo q eu quero

 

Obrigado mesmo, ajudou demais

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.