Ir para conteúdo

POWERED BY:

Arquivado

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

Alfredo B.

Inner Join

Recommended Posts

Galera eu to tentando fazer um sistema que se o campo 'pedido_id' da mesa selecionada for igual ao campo 'protocolo' de algum registro da tabela pedidos ele exiba o conteudo do registro que contenha o valor igual ao pedido_id

 

EXEMPLO eu to na MESA 1 e nessa MESA 1 o PEDIDO_ID é igual a 598 e na tabela pedidos no campo PROTOCOLO tem os seguintes registros

 

596, 597 e 598

 

eu quero q ele exiba somente o registro que contem o campo protocolo com o valor 598

 

eu tentei adaptar um codigo que usei num carrinho, mas não funcionou

<?php $consultamesa = mysql_query("SELECT *
  									FROM mesas
									INNER JOIN pedidos
									ON mesas.pedido_id = pedidos.protocolo
									WHERE mesas.pedido_id = pedidos.protocolo");
									if(mysql_num_rows($consultamesa)==true){
									while($lnpedido = mysql_fetch_assoc($consultamesa)){?>
                                  <tr>
                                    <td>1</td>
                                    <td><?php echo $lnpedido['produto']; ?></td>
                                    <td>Leite Ninho, Leite Condensado, Paçoca, Ovomaltine</td>
                                    <td>Batido com Morango</td>
                                    <td>Cliente quer banana separada</td>
                                    <td>
                                    <table>
                                        <tr>
                                            <td><button type="button" class="btn btn-success">PRODUZIR</button></td>
                                            <td><button type="button" class="btn btn-danger">CANCELAR</button></td>
                                        </tr>
                                    </table>
                                    </td>
                                  </tr>
									<?php 
									}
									}else{ echo "Mesa Vazia"; }
									?>
</table>
</div>
 <?php } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu precisaria da estrutura das tabelas pra poder te informar com mais clareza, porém, quando se utiliza inner join você precisa colocar os campos que deseja puxar e com algo que identifique a qual tabela cada um deles se refere.

 

Vou te dar um exemplo:

 

Digamos que sua tabela mesas tenha os campos: mesa_id, pedido_id e a tabela pedidos tenha os campos pedido_id e pedido_protocolo, você precisaria fazer uma identificação destes campos, ficaria da seguinte forma:

//Estarei usando o mysql_query porque é o que você esta usando, mas isso já esta 
//obsoleto e o correto é utilizar mysqli ou pdo

$consultamesa = mysql_query("SELECT m.mesa_id, m.pedido_id, p.pedido_id, p.pedido_protocolo FROM mesas as m INNER JOIN pedidos AS p ON m.pedido_id = p.pedido_protocolo");

 

O nome disso é chave estrangeira, geralmente utilizamos campos com os mesmos nomes, por exemplo, pedido_id na tabela mesa que será igual a pedido_id na tabela pedido.

 

Mas o espírito da coisa é esse ai, espero ter te ajudado.

 

Um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo aqui, valeu...

 

fiz da seguinte forma

 

<?php $consultamesas = mysql_query("SELECT m.id, p.* FROM mesas m, pedidos p WHERE m.pedido_id = p.protocolo AND m.id = '".$_GET['mesaid']."'");

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.