Ir para conteúdo

POWERED BY:

Arquivado

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

gabriel-cap

Selecionar e Exibir dados de 2 tabelas PHP/SQL

Recommended Posts

Seguinte, tenho 2 tabelas:

Tabela 1 = cliente fisico (cliente)
Tabela 2 = cliente juridico (clientes_juridico)

Preciso exibir em uma única tabela os dados combinados das tabelas, sem estragar o código que já tenho pronto com paginação etc. (PS. sou novato em programação).

Já consegui exibir somente de 1 tabela, mas preciso das 2 na mesma tabela.

Resumindo, a tabela que vai mostrar na tela tem que mostrar tanto Cliente Fisico como Juridico, nas mesmas colunas dessa tabela.

Muito obrigado desde já!

Segue meu código:


<<div class="container-fluid">
          <div class="row-fluid">
            <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2">
          
            <?php

              include("conexao.php");

              $num_rec_per_page=30;

              if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; };
              $start_from = ($page-1) * $num_rec_per_page;

              $sql = "SELECT * FROM cliente LIMIT $start_from, $num_rec_per_page";
              $rs_result = mysql_query ($sql); 

              ?>
            <div class="table-responsive">
              <table id='myTable' class='table table-bordered table-hover tablesorter tablesorter-bootstrap'>
                  <thead>
                  <tr>
                      <th><input type='checkbox'></th>
                      <th>ID Cliente</th>
                      <th>Nome</th>
                      <th>Telefone</th>
                      <th>Cidade</th>
                      <th>UF</th>
                      <th>Ação</th>
                  </tr>
                  </thead>
                  <tbody>

                  <?php
                  while ($row = mysql_fetch_assoc($rs_result)) {
                      echo "<tr>";
                      echo "<td>" . "<input type='checkbox'>" . "</td>";
                      echo "<td>" . $row['id_cliente'] . "</td>";
                      echo "<td>" . $row['nome'] . "</td>";
                      echo "<td>" . $row['tel1'] . "</td>";
                      echo "<td>" . $row['cidade'] . "</td>";
                      echo "<td>" . $row['estado'] . "</td>";
                      echo "<td>
                      <a class='btn btn-primary' href=\"javascript:edt_id('$row[codigo]')\"> Abrir </i></a>
                      <a class=\"btn btn-warning\" href=\"#\"> Estoque</i></a>
                      <a class=\"btn btn-danger\" href=\"#\"> <i class=\"fa fa-trash\"></i></a>
                      </td>";
                      echo "</tr>";
                      ?>

                      <?php
                  };
                  ?>
                  </tbody>
              </table>
            </div>
              <?php
              $sql = "SELECT * FROM cliente";
              $rs_result = mysql_query($sql); 
              $total_records = mysql_num_rows($rs_result); 
              $total_pages = ceil($total_records / $num_rec_per_page);

              echo "<a href='produtos.php?page=1'>".'|<'."</a> ";

              for ($i=1; $i<=$total_pages; $i++) {
                  echo "<a href='?page=".$i."'>".$i."</a> ";
              };
              echo "<a href='?page=$total_pages'>".'>|'."</a> ";
              ?>
            </div>
        </div>
      </div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estude sobre JOIN, Union <e opcoes xD>, LEFT JOIN, RIGHT JOIN

Um exemplo:

CREATE DATABASE imasters;


use imasters;

create table clientes(
	 id int (8) primary key auto_increment
	,nome varchar(50)
);

INSERT INTO clientes (nome) values ('Gabriel');
INSERT INTO clientes (nome) values ('Beraldo');
INSERT INTO clientes (nome) values ('Gabriel-cap');


create table clientes_pj(
	 id int (8) primary key auto_increment
	,nome varchar(50)
);

INSERT INTO clientes_pj (nome) values ('Gabriel');
INSERT INTO clientes_pj (nome) values ('Beraldo');
INSERT INTO clientes_pj (nome) values ('Gabriel-cap');



select nome from clientes
union 
select nome clientes_pj
;


 select nome from clientes union select nome from clientes;

 

select id, nome, 'Pessoa Fisica' as tipo_cliente from clientes
 union ALL
select id,nome, 'Pessoa Juridica' as tipo_cliente from clientes_pj;


+----+-------------+-----------------+
| id | nome        | tipo_cliente    |
+----+-------------+-----------------+
|  1 | Gabriel     | Pessoa Fisica   |
|  2 | Beraldo     | Pessoa Fisica   |
|  3 | Gabriel-cap | Pessoa Fisica   |
|  1 | Gabriel     | Pessoa Juridica |
|  2 | Beraldo     | Pessoa Juridica |
|  3 | Gabriel-cap | Pessoa Juridica |
+----+-------------+-----------------+
6 rows in set (0.00 sec)






Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta Gabriel, porém como sou novato ainda não consegui entender porque você utilizou o comando SELECT mais de 1 vez. Conseguiria me dar um exemplo de como ficaria meu código?

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

porém como sou novato ainda não consegui entender porque você utilizou o comando SELECT mais de 1 vez

Ué você mesmo perguntou como fazia a junção de tabelas. não foi?

Tabela 1 = cliente fisico (cliente)

Tabela 2 = cliente juridico (clientes_juridico)

A ideia do UNION é em apenas um Statment retornar mais de resultado unindo selects distintos

É uma maneira.

Leia mais sobre Union:

https://dev.mysql.com/doc/refman/5.7/en/union.html

Conseguiria me dar um exemplo de como ficaria meu código?

Na verdade eu já dei o exemplo baseando no seu código.

Ao menos tente substituir o código.

'clientes_pj' por 'clientes_juridico'

Quem sabe não aparece um resultado esperado? :D

Como ficou após você tentar e estudar os exemplos + links de referencia q eu passei?

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.