Jump to content
will_chido

Dificuldade em realizar consulta em duas tabelas bd

Recommended Posts

Bom dia a todos sou novo aqui encontrei um problema ao tentar realizar uma consulta em duas tabelas bd, para voltar resultado impresso na tela, ja tentei algumas formas li alguns tópicos mas sem sucesso tentei o uso de inner join talvez ou quase certo eu esteja fazendo errado se alguem puder me ajudar segue o pedaço do meu codigo, preciso incluir a pesquisa tambem na tabela ( categorias)

 

 <?php
                            foreach ($vendas as $c) {

                                echo '<tr>';
                                echo '<td>' . $c->nomeCliente . '</td>';
                                echo '<td>' . $c->valorTotal. '</td>';
                                echo '<td>' . date('d/m/Y', strtotime($c->dataVenda)) . '</td>';
                                echo '<td>' . $c->nome. '</td>';
                                echo '</tr>';
                            }
                            ?>

Share this post


Link to post
Share on other sites

Poderia postar as tabelas a serem utilizadas?

Qual a ligação entre as mesmas?

Share this post


Link to post
Share on other sites

<?php
                            foreach ($produtos as $p) {
                                echo '<tr>';
                                echo '<td>' . $p->descricao. '</td>';
                                echo '<td>' . $p->saida. '</td>';
                                echo '<td>' . $p->precoCompra . '</td>';
                                echo '<td>' . $p->precoVenda . '</td>';
                                echo '<td>' . $p->estoque. '</td>';
                                echo '</tr>';
                            }
                            ?>

Share this post


Link to post
Share on other sites

use na sql a consulta das duas tabelas ligado pelo um ID.

Tipo:

SELECT *
FROM primeira_tabela AS C 
JOIN segunda_tabela AS P ON C.IDCLIENTE = P.IDPEDIDO

Share this post


Link to post
Share on other sites

Segue exemplo:

 

SQLs

CREATE TABLE clientes (
	idCliente INT NOT NULL AUTO_INCREMENT,
	nomeCliente VARCHAR(100) NOT NULL,
	PRIMARY KEY (idCliente)
);
INSERT INTO clientes (nomeCliente) VALUES
('Hugo Silva'),
('Reinaldo Saraiva');

CREATE TABLE produtos (
	idProduto INT NOT NULL AUTO_INCREMENT,
	descricao VARCHAR(100) NOT NULL,
	quantidade INT NOT NULL,
	preco DECIMAL(6,2) NOT NULL,
	PRIMARY KEY (idProduto)
);
INSERT INTO produtos (descricao, quantidade, preco) VALUES
('Notebook Dell', 100, 3000),
('Celular Nokia', 1000, 10000);

CREATE TABLE vendas (
	idVenda INT NOT NULL AUTO_INCREMENT,
	idCliente INT NOT NULL,
	valorTotal DECIMAL(6,2) NOT NULL,
	dataVenda DATE NOT NULL,
	PRIMARY KEY(idVenda),
	FOREIGN KEY (idCliente) REFERENCES clientes (idCliente)
);
INSERT INTO vendas (idCliente, valorTotal, dataVenda) VALUES
(1, 90000, CURRENT_DATE),
(2, 90000, CURRENT_DATE);

CREATE TABLE itens_de_venda (
	idItem INT NOT NULL AUTO_INCREMENT,
	idVenda INT NOT NULL,
	idProduto INT NOT NULL,
	quantidadeItem INT NOT NULL,
	precoItem DECIMAL(6,2) NOT NULL,
	PRIMARY KEY(idItem),
	FOREIGN KEY (idVenda) REFERENCES vendas (idVenda),
	FOREIGN KEY (idProduto) REFERENCES produtos (idProduto)
);
INSERT INTO itens_de_venda (idVenda, idProduto, quantidadeItem, precoItem) VALUES
(1, 1, 1, 2000),
(1, 2, 10, 2000),
(2, 1, 1, 2000);

 

CÓDIGO PHP

<?php

# SIMPLE CONN
$pdo = new PDO ( 'mysql:host=localhost;dbname=sua_database', 'root', '' );
$pdo->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

# OBTEM OS ITENS VENDIDOS
# NA VENDA COM ID = 1
$itens = $pdo->prepare ('
	SELECT
		*
	FROM
		vendas v
	INNER JOIN
		clientes c ON (c.idCliente = v.idCliente)
	INNER JOIN
		itens_de_venda iv ON (iv.idVenda = v.idVenda)
	INNER JOIN
		produtos p ON (iv.idProduto = p.idProduto)
	WHERE
		v.idVenda = 1
');
$itens->execute ();

# PEGA OS DADOS E MONTA
# TABELA
$getItens = $itens->fetchAll ( PDO::FETCH_OBJ );

echo "
	<table border=1>
		<thead>
			<tr>
				<th>ID da Venda</th>
				<th>Cliente</th>
				<th>Produto</th>
				<th>Preco do Produto</th>
				<th>Quantidade Comprada</th>
				<th>Data da Venda</th>
			</tr>
		</thead>

		<tbody>
";
	foreach ( $getItens as $key => $i ) {
		echo "
			<tr>
				<td>{$i->idVenda}</td>
				<td>{$i->nomeCliente}</td>
				<td>{$i->descricao}</td>
				<td>R$ {$i->precoItem}</td>
				<td>{$i->quantidadeItem} Unidades</td>
				<td>{$i->dataVenda}</td>
			</tr>
		";
	}
echo "
		</tbody>
	</table>
";

 

OBSERVAÇÕES

SQL e Código citados acima são apenas exemplos para guiar-lhe;

2º - Se suas tabelas não estiverem "conectadas" de algum modo, será

difícil conseguir "unir"  os dados presentes nas mesmas.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By WitchMad
      Ooi gente!
      Seguinte, estou desenvolvendo uma plataforma para advogados. Nela será consultado processos a partir do web service do PJE.
      No site do PJE me recomendou utilizar o NuSoap para consultar o web service e foi o que eu fiz.
      Segue o código da consulta
      <?php require_once 'nusoap/lib/nusoap.php'; /* Parâmetros Requisitados */ // idConsultante // senhaConsultante // numeroProcesso /* Objetos de Resposta sucesso bollean Indica se houve sucesso na consulta do processo. mensagem string Mensagem informando que o processo foi consultado com sucesso. recibo xs:base64Binary Comprovante do protocolo do processo, que contém os dados básicos do processo. */ $wsdl = "https://www.tjpe.jus.br/pje/intercomunicacao?wsdl"; $client = new nusoap_client($wsdl, 'wsdl'); if($client->getError()){ echo "Erro no construtor" . $client->getError(); exit(); } $result = $client->call('consultarProcesso', array('idConsultante'=>'CPF do Consultante', 'senhaConsultante'=>'Senha do Consultante', 'numeroProcesso'=>'Número do Processo')); echo $result['sucesso']; ?> Acontece que a página fica em branco, sem nenhum tipo de mensagem.
      Se possível gostaria de dicas se há algum erro no código, ou alguma outra ferramenta para consultar web service
    • By Alvaro Pacífico Serpa
      Olá pessoal, eu estava copiando um trecho de um código fonte usando o file_gets_contents
      $log=file_get_contents($url); $trechoInicial = "VideoUrl('"; $trechoFinal = "')"; $posicao1 = strpos($log, $trechoInicial); $posicao2 = strpos( $log, $trechoFinal, $posicao1 ); $trechoCopiado = substr( $log, $posicao1 + strlen( $trechoInicial ), $posicao2 - $posicao1 - strlen( $trechoInicial ) ); echo $trechoCopiado; Estava funcionando perfeitamente e do nada parou de funcionar, tem alguma outra forma de fazer isto que estou fazendo?
    • By Leonardo Ortega
      Prezados, bom dia.
      sou novo por aqui, e me deparei com esta situação:
      estou desenvolvendo um projeto e tudo começou quando apenas mudei o banco de dados que estava conectado. Ou seja, se eu me conecto ao baco de dados anterior, volta todo código html, porém, se conecto ao banco de dados atual as divs desaparecem. 
       
      obs: Isso tb acontece quando eu desativo o php tudo volta como a imagem 1 e se eu ativo fica como a imagem2.
       
      quem pode me ajudar.. desde já muito obrigado.  


    • By Richard.Ribeiro
      Fala Pessoal.. Bom dia.. uma ajuda por favor.
      não sei se e a melhor opção mais, gostaria de criar um id sequencial id="material"
      para resolver seguinte problema.. com javascript eu crio select com dados selecionados anteriormente, e crio mais opção no caso de haver mais pedido, porém toda vez que preciso troca a categoria o PRIMEIRO selecte que já possui um item e resetado. como posso resolver isso O PRIMIEIRO SELECT NÃO MUDAR. uma vez que á possui value selected
       
      segue todo código:

        <div id="box" >
        <form id="cadastro"  method="post">
          <?php
            if(isset($_POST['acao'])){
              $ide = $_POST['ide'];
              $data = $_POST['data_pedido'];
              $username=$_SESSION['username'];
              $justificativa = $_POST['justificativa'];
              $id_tipo_material = $_POST['material'];
              $qnt_solicitada = $_POST['qnt_solicitada'];

              //cadastrar no banco de dados!
                  $gravar = new Painel();
                  $id_gsm = $gravar->cadastrarGsm($data,$username,$justificativa,$ide);
                  $gravar->cadastrarItem($id_gsm,$id_tipo_material,$qnt_solicitada);
                  Painel::alert('sucesso','Pedido realizado com sucesso!');
                  }
                  $ConsultaIde = ConexaoBD::conectar()->prepare("SELECT  vsat_gilat, 'IDE: '||vsat_gilat|| ', Situação:'|| situacao|| ', Localidade:'||localidade|| ', Logradouro: '||logradouro as local
        FROM vsat WHERE vsat_gilat != '' AND situacao = 'Ativo'");
                  $ConsultaIde->execute();
                  $ConsultaIde = $ConsultaIde->fetchAll();
        ?>
        <div >
        <div class="form-group">
              <label>Selecione uma IDE</label>
              <select class="ide" name="ide" id="ide" required>
                <option disabled selected>-- Selecione IDE --  </option>
                  <?php
                  foreach ($ConsultaIde as $key => $value) {
                    ?>
                    <option value="<?php echo $value['vsat_gilat'];?>">
                      <?php echo $value['local'];?>

                </option>
              <?php }?>
              </select>

              <label>Data da Solicitação do Material :</label>
              <input type="text"value="<?php   echo date('d/m/Y');    ?>"  name="data_pedido" readonly >
        </div><!--form-group-->
            <div class="form-group">
              <label>Justificativa do pedido:</label>
              <textarea  rows="8" cols="80" name="justificativa" required></textarea>
        </div><!--form-group-->

        <div class="form-group">
              <label>Selecione Sistema:</label>
              <select name="id_categoria" id="id_categoria">
              <option selected disabled> --- Selecione o Sistema ---</option>
            <?php
        $consulta= ConexaoBD::conectar()->prepare("SELECT id_sistema, descricaos FROM public.cadastrar_sistema");
        $consulta->execute();
        while($row_cat_post = $consulta->fetch(PDO::FETCH_ASSOC) ) {
        echo '<option value="'.$row_cat_post['id_sistema'].'">'.$row_cat_post['descricaos'].'</option>';
              }
        ?>
          </select>
        </div><!--form-group-->
        <div class="form-group">
          <label>Selecione Padrão:</label>
          <span class="carregando">Aguarde, carregando...</span>
          <select name="id_sub_categoria" id="id_sub_categoria" >
            <option value="">--- Selecione o Padrão ---</option>
          </select>
        </div><!--form-group-select-->

        </div>
        <div class="pedido">
          <div class="remover">
          <label>Selecione Material:</label>
          <span class="carregando">Aguarde, carregando...</span>
          <select name="material[]" id="material">
            <option value="">--- Selecionte o Material ---</option>
          </select>
          <input type="text" id="quantidade" name="qnt_solicitada[]" placeholder="Digite a Quantidade" >
      <button type="button" name="button" class="removedor">Remover Item</button>
      </div>
      </div>
      </div>
        <button type="button" name="button" class="clonador">Novo Item</button>
        <input type="submit" name="acao" value="Cadastrar!">
        </form>
       
       
       
       
       
       
       
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
                <script type="text/javascript">
                  google.load("jquery", "1.4.2");
                </script>
      <script  src="<?php echo INCLUDE_PATH_PAINEL ?>js/jquery-3.4.1.min.js"></script>
      <script type="text/javascript">
        $(function(){
          $('#id_categoria').change(function(){
            if( $(this).val() ) {
              $('#id_sub_categoria').hide();
              $('.carregando').show();
              $.get('sub_categorias_post?search=',{id_categoria: $(this).val(), ajax: 'true'}, function(j){
                html = $.parseHTML(j);
                j=JSON.parse(html[16].textContent.trim());
                var options = '<option value="">Escolha Subcategoria</option>';
                for (var i = 0; i < j.length; i++) {
                  options += '<option value="' + j.id + '">' + j.nome_sub_categoria + '</option>';
                }
                $('#id_sub_categoria').html(options).show();
                $('.carregando').hide();
              });
            } else {
              $('#id_sub_categoria').html('<option value="">– Escolha Subcategoria –</option>');
            }
          });
        });
        $(function(){
          $('#id_sub_categoria').change(function(){
            if( $(this).val() ) {
              $('#material').hide();
              $('.carregando').show();
              $.get('sub_categorias_post2?search=',{id_sub_categoria: $(this).val(), ajax: 'true'}, function(j){
                html = $.parseHTML(j);
                console.log(html);
                j=JSON.parse(html[16].textContent.trim());
                var options = '<option value="">Escolha Subcategoria</option>';
                for (var i = 0; i < j.length; i++) {
                  options += '<option value="' + j.id + '">' + j.nome_sub_categoria + '</option>';
                }
                $('#material').html(options).show();
                $('.carregando').hide();
              });
            } else {
              $('#id_sub_categoria2').html('<option value="">– Escolha Subcategoria –</option>');
            }
          });
        });
        </script>
        <script>
        $(document).ready(function(){
       
              $(document).on('click', '.clonador', function(e){
                var elm_html = $('.pedido').html();
                var counter = 0;  //faz uma cópia dos elementos a serem clonados.
                  e.preventDefault();
                  var elementos = elm_html.replace(/\[[0\]]\]/g, '['+ counter +']');  //substitui o valor dos index e incrementa++
                  counter++;
                  $('#cadastro').append(elementos);  //exibe o clone.
              });
          });

          $(document).on('click', '.removedor', function (event) {
            event.preventDefault();
            $(this).parents('.remover').remove(); // navega até o pai com a classe pedido e remove ele inteiro
          });
        </script>
       
        <?php
        die();
        ?>
      </div><!--box-content-->
    • By djwagnersp
      Bom dia amigos, tudo bem? estou com uma duvida se alguém puder me ajudar agradeço desde já.
       
      tenha a seguinte condição:
      //array dos produtos $prod = 'agua'; $prod = 'refri'; $prod = 'cerveja'; //array das quantidades $qtd = '3'; $qtd = '2'; $qtd = '6'; Gostaria de fazer um loop o for ou foreach que imprimisse o $prod a quantidade de vezes do $qtd
      como seria possível realizar isso?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.