Preciso puxar dados de 03 tabelas do mesmo banco Mysql

MySQL

PHP

13/03/2017

Gostaria de uma ajuda, sou iniciante e tenho essa dúvida.

Preciso puxar os dados de 03 tabelas diferentes do mesmo banco, apenas uma puxa as informações as outras duas não. alguém pode me dar uma ajuda??

Segue o código:
=====================

<?php include("acesso.php");
// conecta ao banco de dados
$con = mysql_pconnect($host, $user, $pass) or trigger_error(mysql_error(),E_USER_ERROR); 
// seleciona a base de dados em que vamos trabalhar
mysql_select_db($db, $con);
// cria a instrução SQL que vai selecionar os dados
$query = sprintf("SELECT Nome1, Texto1, Item11, Item21, Item31, Item41, Imagem1  FROM NP");
// cria a instrução SQL que vai selecionar os dados
$query = sprintf("SELECT Nome, Texto, Item1, Item2, Item3, Item4, Imagem  FROM TE");
// cria a instrução SQL que vai selecionar os dados
$query = sprintf("SELECT Nome2, Texto2, Item12, Item22, Item32, Item42, Imagem2  FROM MRP");
// executa a query
$dados = mysql_query($query, $con) or die(mysql_error());
// transforma os dados em um array
$linha = mysql_fetch_assoc($dados);
// calcula quantos dados retornaram
$total = mysql_num_rows($dados);
?>


Onde serão exibida as informações das tabelas:
============================

 <?php
// se o número de resultados for maior que zero, mostra os dados
if($total > 0) {
// inicia o loop que vai mostrar todos os dados
do {
 ?>  
    
      <div id="slidingDiv" class="toggleDiv row-fluid single-project">
        <div class="span6"> <img src="admin/arquivos/<?=$linha['Imagem1']?>" /> </div>
        <div class="span6">
          <div class="project-description">
            <div class="project-title clearfix">
              <h3><?=$linha['Nome1']?></h3>
              <span class="show_hide close"> <i class="icon-cancel"></i> </span> </div>
            <p><?=$linha['Texto1']?></p>
            <div class="project-info">
              <div><?=$linha['Item11']?></div>
              <div><?=$linha['Item21']?></div>
              <div><?=$linha['Item31']?></div>
              <div><?=$linha['Item41']?></div>
             
            </div>
          </div>
        </div>
      </div>
      <div id="slidingDiv1" class="toggleDiv row-fluid single-project">
        <div class="span6"> <img src="admin/arquivos/<?=$linha['Imagem']?>" > </div>
        <div class="span6">
          <div class="project-description">
            <div class="project-title clearfix">
              <h3><?=$linha['Nome']?></h3>
              <span class="show_hide close"> <i class="icon-cancel"></i> </span> </div>
            <p><?=$linha['Texto']?></p>
            <div class="project-info">
              <div><?=$linha['Item1']?></div>
              <div><?=$linha['item2']?></div>
              <div><?=$linha['item3']?></div>
              <div><?=$linha['item4']?></div>
            </div>
          </div>
        </div>
      </div>
      <div id="slidingDiv2" class="toggleDiv row-fluid single-project">
        <div class="span6"> <img src="admin/arquivos/<?=$linha['Imagem2']?>"> </div>
        <div class="span6">
          <div class="project-description">
            <div class="project-title clearfix">
              <h3><?=$linha['Nome2']?></h3>
              <span class="show_hide close"> <i class="icon-cancel"></i> </span> </div>
            <p><?=$linha['Texto2']?></p>
            <div class="project-info">
              <div><?=$linha['Item12']?></div>
              <div><?=$linha['Item22']?></div>
              <div><?=$linha['Item32']?></div>
              <div><?=$linha['Item42']?></div>
            </div>
          </div>
        </div>
      </div>
      <ul id="portfolio-grid" class="thumbnails row">
        <li class="span4 mix web">
          <div class="thumbnail"> <img src="admin/arquivos/<?=$linha['Imagem1']?>" > <a href="#single-project" class="more show_hide" rel="#slidingDiv"> <i class="icon-plus"></i> </a>
            <h3><?=$linha['Nome1']?></h3>
            <div class="mask"></div>
          </div>
        </li>
        <li class="span4 mix photo">
          <div class="thumbnail"> <img src="admin/arquivos/<?=$linha['Imagem']?>" > <a href="#single-project" class="show_hide more" rel="#slidingDiv1"> <i class="icon-plus"></i> </a>
            <h3><?=$linha['Nome']?></h3>
            <div class="mask"></div>
          </div>
        </li>
        <li class="span4 mix identity">
          <div class="thumbnail"> <img src="admin/arquivos/<?=$linha['Imagem2']?>" > <a href="#single-project" class="more show_hide" rel="#slidingDiv2"> <i class="icon-plus"></i> </a>
            <h3><?=$linha['Nome2']?></h3>
            <div class="mask"></div>
          </div>
        </li>
      </ul>
       <?php
		// finaliza o loop que vai mostrar os dados
		}while($linha = mysql_fetch_assoc($dados));
	    // fim do if 
	    }
        ?>      





Desde já obrigado!!!!
Lico

Lico

Curtidas 0

Melhor post

Marcus Soares

Marcus Soares

14/03/2017

Senhores,

Se as tabelas são relacionadas utilizem, preferencialmente, "join" ao invés de "where".

Lico, PHP não é a minha praia, mas
/<?=$linha['a.Imagem1']?>
não deveria ser somente
/<?=$linha['Imagem1']?>
?

No SQL apesar de vc usar o alias, antes do nome do campo para referenciar a tabela, no result o nome dos campos não trás o alias ou o nome da tabela de onde os dados vieram.

Espero ter ajudado ! :)
GOSTEI 2

Mais Respostas

Flávio Reis

Flávio Reis

13/03/2017

Porque nao fazes o seguinte:
1 criar alias para cada tabela
2 chamar os campos das tabelas consoante cada alias
como exemplo:
SELECT a.nome, a.texto1, b.nome, b.texto1, c.nome, c.texto1 FROM TBA as a , tbb as b, tbc as c

se as tabelas forem relacionadas só tens que fazer : WHERE a.id = b.id_chave estarngeira_a AND b.id=c.id_chave estarngeira_b etc etc
GOSTEI 1
Lico

Lico

13/03/2017

Boa tarde Flavio

Obrigado, fiz o que indicou, mais printa a informações do das Tb.

// cria a instrução SQL que vai selecionar os dados
$query = sprintf("SELECT a.Nome1, a.Texto1, a.Item11, a.Item21, a.Item31, a.Item41, a.Imagem1, b.Nome, b.Texto, b.Item1, b.Item2, b.Item3, b.Item4, b.Imagem, c.Nome2, c.Texto2, c.Item12, c.Item22, c.Item32, c.Item42, c.Imagem2  FROM NP as a, TE as b, MRP as c");



Acredito que o problema por ser aqui agora:

 <?php
// se o número de resultados for maior que zero, mostra os dados
if($total > 0) {
// inicia o loop que vai mostrar todos os dados
do {
 ?>  
    
      <div id="slidingDiv" class="toggleDiv row-fluid single-project">
        <div class="span6"> <img src="admin/arquivos/<?=$linha['a.Imagem1']?>" /> </div>
        <div class="span6">
          <div class="project-description">
            <div class="project-title clearfix">
              <h3><?=$linha['a.Nome1']?></h3>
              <span class="show_hide close"> <i class="icon-cancel"></i> </span> </div>
            <p><?=$linha['a.Texto1']?></p>
            <div class="project-info">
              <div><?=$linha['a.Item11']?></div>
              <div><?=$linha['a.Item21']?></div>
              <div><?=$linha['a.Item31']?></div>
              <div><?=$linha['a.Item41']?></div>
             
...
GOSTEI 0
Flávio Reis

Flávio Reis

13/03/2017

verifica o SELECT fora da tua aplicação se mostra os dados de forma correta
Se quiseres podes contactar-me pelo skype : flavio.dos.reis1,
GOSTEI 1
Kelvin Eger

Kelvin Eger

13/03/2017

Bom dia, segue instrução de como faze-las

    SELECT FROM a.cod_tabelaA, a.nome, a.numero, b.cod_tabelaB, b. nomaTabelaB, b.numeroTabelaB 
    FROM tabelaA  a
               tabelaB  b
   where cod_tabelaA = cod_tabelaB
GOSTEI 0
POSTAR