Ir para conteúdo

POWERED BY:

Arquivado

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

gugax

[Resolvido] Exibir dados da consulta

Recommended Posts

Estou com uma dúvida num sistema que estou fazendo...

Tenho um BD com 3 tabelas (produtos, compras, membros)

 

Na tabela "compras" existem 6 linhas:

id - id da compraid_produto - id do produdo a ser compradoqtia_comprada - quantas unidades do produto serao compradasid_cliente - o id do cliente (comprador)modo_compra - se é "à vista" ou "a prazo".situacao - se a compra ja foi finalizada (1) ou ainda está em andamento (0).
Minha dúvida é a seguinte, quero fazer uma consulta do total de clientes com produtos "ainda nao pagos" ou seja "compras ainda em andamento"!

Exemplo, tenho os seguintes registros no BD:

 

registro1

id (1)id_produto (7)qtia_comprada (2)id_cliente - (1)modo_compra - (à vista)situacao - (0)
registro2

id (2)id_produto (5)qtia_comprada (1)id_cliente - (1)modo_compra - (a prazo)situacao - (0)
registro3

 

id (3)id_produto (1)qtia_comprada (3)id_cliente - (6)modo_compra - (à vista)situacao - (0)
registro4

 

id (4)id_produto (12)qtia_comprada (1)id_cliente - (17)modo_compra - (a prazo)situacao - (1)
A consulta retornaria 2 (o cliente "1" e o cliente "6" que são os com compras em andamento)

'Notem que tem dois registros com o mesmo cliente...'

 

Alguem pode da 1 força Imagem Postada vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como voce postas aqui o select que voce esta usando para pegar os dados?????

 

 

abraços!

 

Pelo que eu entendi. Se queres saber todos os usuários que estão com situação em aberto:

 

$sql = "SELECT * FROM compras WHERE situacao = 0";

 

No caso não vai retornar 2 registros. E sim 3 porque por mais que o usuário 1 seja igual ele tem outros campos diferentes, ou seja, não é o mesmo registro. Agora se queres pegar os dados de cliente também:

 

$sql = "SELECT * FROM compras as cp JOIN cliente as c ON cp.id_cliente = c.id_cliente WHERE cp.situacao = 0";

 

Aí, nesse caso parti do princípio que a tabela de cliente tem nome de "cliente" e que o campo da chave pimária é "id_cliente". O que está sendo feito é um JOIN da tabela compras, com a tabela cliente onde (ON) cp.id_cliente (FK na tabela compras) é igual a c.id_cliente (PK na tabela cliente) onde (WHERE) a situação deles (cp.situacao) é iguala zero, ou seja, está com compras em andamento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu faria assim

 

<?
$sql = mysql_query("SELECT * FROM `compras` WHERE situacao='0'");
while ($array = mysql_fetch_array($sql)){
$cliente = $array["id_cliente"];
echo $cliente."<br>";
}
// lembre-se que a variavel $cliente so tera os clientes listados dentro do laço while
// caso contrario $cliente so retornara um registro
?>

Se não for isso peço desculpas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente isso...

SELECT
    membros.id

FROM
    compras

INNER JOIN
    membros ON membros.id = compras.id_cliente

WHERE
    compas.situacao = 0

GROUP BY
    membros.id

Compartilhar este post


Link para o post
Compartilhar em outros sites

oO Agora que fui ver que coloquei o nome de uma das tabelas errado...

As tabela são (produtos, compras e clientes) e não membros.

Mas minha duvida descrita acima ja consegui resolver, usando esta consulta

$select = "SELECT * FROM clientes";$select2 = mysql_query($select);$total_clientes_com_produtos_ainda_nao_pagos = "0";while($select3 = mysql_fetch_array($select2)){	$compra = "SELECT * FROM compras where id_cliente='$select3[id]' and situacao='0'";	$compra2 = mysql_query($compra);	$checa_resultados = mysql_num_rows($compra2);		if($checa_resultados > 0){			$total_clientes_com_produtos_ainda_nao_pagos++;		}else{			$total_clientes_com_produtos_ainda_nao_pagos = $total_clientes_com_produtos_ainda_nao_pagos;		}}
Vejam se entendam, não sei como explicar :S

 

-

 

Agora tenho outra dúvida, é o seguinte, criei um link para cada produto, onde quando clicado, carrega uma página que faz uma consulta na tabela produtos e exibe as informações dele. Até aí td ok, consegui exibir todas as informações que eu queria menos uma...

 

Esta informação é a seguinte, exibir o nome de quem ja comprou tal produto e a quantia comprada...

O problema é que tenho uma tabela para os clientes contendo o nome e talz, uma para o produto contendo as informações do produto e a outra para as compras, que contem o id do produto, o id do cliente e a quantia comprada.

 

Alguem sabe como fazer isso?

 

Vou deixar a estrutura das 3 tabelas abaixo, pode facilitar um pouco :X

 

produtos

CREATE TABLE `produtos` (  `id` int(11) NOT NULL auto_increment,  `produto` varchar(100) NOT NULL,  `descricao` varchar(150) NOT NULL,  `estoque` varchar(10) NOT NULL,  `p_compra` varchar(15) NOT NULL,  `porcentagem` varchar(15) NOT NULL,  `lucro` varchar(15) NOT NULL,  `p_venda` varchar(15) NOT NULL,  `situacao` varchar(1) NOT NULL,  `added` varchar(100) NOT NULL,  `record` varchar(15) NOT NULL,  PRIMARY KEY  (`id`))
clientes

 

CREATE TABLE `clientes` (  `id` int(11) NOT NULL auto_increment,  `nome` varchar(100) NOT NULL,  `endereco` varchar(150) NOT NULL,  `idt_cpf` varchar(100) NOT NULL,  `telefone` varchar(50) NOT NULL,  `status` varchar(30) NOT NULL,  PRIMARY KEY  (`id`))
compras

 

CREATE TABLE `compras` (  `id` int(11) NOT NULL auto_increment,  `id_produto` varchar(100) NOT NULL,  `qtia_comprada` varchar(15) NOT NULL,  `id_cliente` varchar(100) NOT NULL,  `modo_compra` varchar(10) NOT NULL,  `situacao` varchar(50) NOT NULL,  `started` varchar(100) NOT NULL,  PRIMARY KEY  (`id`))
vlw Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me baseando nas respostas da outra pergunta e em pesquisas sobre o assunto, consegui resolver Imagem Postada

vlw a atenção de todos!

 

para quem quiser saber qual foi a consulta

$procura_comprador = "SELECT id_produto, SUM(qtia_comprada) as qtia, id_cliente FROM compras WHERE id_produto = '".$produto_id."'  GROUP BY id_cliente";$procura_comprador2 = mysql_query($procura_comprador) or die (mysql_error());$vectemalgo = mysql_num_rows($procura_comprador2);	if($vectemalgo > 0){		while($procura_comprador3 = mysql_fetch_array($procura_comprador2)){			$procura_nome = "SELECT * FROM clientes WHERE id = ".$procura_comprador3[id_cliente]." LIMIT 1";			$procura_nome2 = mysql_query($procura_nome) or die (mysql_error());			$procura_nome3 = mysql_fetch_array($procura_nome2);			echo "$procura_nome3[nome] ($procura_comprador3[qtia] un.)<br />";		}        }else{		echo "Nenhum comprador";	}

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.