Ir para conteúdo

POWERED BY:

Arquivado

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

vitinho.vitor

[Resolvido] Busca MySQL

Recommended Posts

Olá pessoal, é o seguinte, tenho uma tabela pedidos que tem o ID da loja, porém eu preciso do nome da loja e eu preciso listar todos os pedidos, mesmo repetindo as lojas.

Tenho esta sintaxe:

$sql = mysql_query("SELECT * FROM pedidos WHERE id_user = $id_user AND status = 'Entregue' OR status = 'Faturado' AND data BETWEEN '$de' AND '$ate'");
while ($row = mysql_fetch_array($sql)) {
$id_est = $row['id_est'];
$total_pedido = $row['total'];
$comissao = $row['comissao'];
}
$total_pedido = number_format($total_pedido,2, ",",".");
$comissao = number_format($comissao,2, ",",".");
$sql = mysql_query("SELECT id, nome FROM estabelecimento WHERE id = $id_est");
while ($row = mysql_fetch_array($sql)) {

echo "<tr>
	<td>
	    ".$row['nome']."
	</td>
	<td>
	    R$".$total_pedido."
	</td>
	<td>
	    R$".$comissao."
	</td>
</tr>";
}
?>

Porém ele só está imprimindo o pedido com maior valor.

Gostaria de saber se tem alguma forma de juntar esses 2 SELECTs ou então imprimir da forma certa.

 

Desde já agradeço

Vitor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colunas de estabelecimento :

id

id_user

nome

cpf/cnpj

email

endereço

bairro

cidade

estado

cep

telefone

horario entrega

valor mini

valor pratico

valor mega

valor jiper

valor econ not

valor mega not

 

Colunas de pedidos :

id

id_user

id_est

data

status

prazo entrega

qtde minip

qtde praticop

qtde megap

qtde hiperp

qtde econ notp

qtde mega notp

qtde minim

qtde praticom

qtde megam

qtde hiperm

qtde econ notm

qtde mega notm

qtde minig

qtde praticog

qtde megag

qtde hiperg

qtde econ notg

qtde mega notg

qtde minieg

qtde praticoeg

qtde megaeg

qtde hipereg

qtde econ noteg

qtde mega noteg

 

Elas são relacionadas pelo id_user e o id_est, que é o id que eu preciso pesquisar na tabela estabelecimento.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

vitinho, utilize essa query e veja se o retorno é o desejado:

 

SELECT p.*,e.id,e.nome 
FROM pedidos p, estabelecimento e 
WHERE p.id_user = $id_user AND 
      p.id_est = e.id AND
      p.status = 'Entregue' OR 
      p.status = 'Faturado' AND 
      p.data BETWEEN '$de' AND '$ate'

Caso não dê certo, volte ao topico por favor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT p.*,e.id,e.nome 
FROM pedidos p, estabelecimento e 
WHERE p.id_user = $id_user AND 
      p.id_est = e.id AND
      (p.status = 'Entregue' OR 
       p.status = 'Faturado') AND 
      p.data BETWEEN '$de' AND '$ate'

Com OR e AND use parenteses.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, deu certo, muito obrigado à todos que responderam.

Segue o código final:

$sql = mysql_query("SELECT p.*,e.id,e.nome 
FROM pedidos p, estabelecimento e 
WHERE p.id_user = $id_user AND 
      p.id_est = e.id AND
      (p.status = 'Entregue' OR 
       p.status = 'Faturado') AND 
      p.data BETWEEN '$de' AND '$ate'");
while ($row = mysql_fetch_array($sql)) {

echo "<tr>
	<td>
	    ".$row['nome']."
	</td>
	<td>
	    R$".number_format($row['total'],2, ",",".")."
	</td>
	<td>
	    R$".number_format($row['comissao'],2, ",",".")."
	</td>
</tr>";
}
?>

Obrigado,

;)

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.