Duvidas sobre Logica PHP ?

1. Duvidas sobre Logica PHP ?

Jonathan Rodrigues
john_master12

(usa Ubuntu)

Enviado em 16/04/2013 - 15:45h

Amigos,
Primeiramente desde já quero agradecer a paciência e seu tempo, minha duvida por parecer simples....mas para mim tá tirando o sono.
Seguinte to "criando" um sistema de Vendas simples, onde existe as seguintes tabelas:
1º Cliente
2º Orçamento
3º pedidos
como fazer a inserção na base de dados isso eu sei fazer, o minha duvida é o seguinte, como "amarrar" cada Cliente com seus respectivos orçamentos exemplo abaixo:

CLIENTE VivaLinux--------pediu o ----- ORÇAMENTO----- foi aprovado e emitidO----PEDIDO---
como amarrar o cliente Viva linux com os respectivos?

Desculpe se não foi muito claro


  


2. Re: Duvidas sobre Logica PHP ?

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 17/04/2013 - 00:52h

chaves estrangeiras.

Na tabela cliente vc vai ter um campo como chave para identificar um cliente.

tb_cliente
ID|NOME|CPF
1|Fulano|98098098
2|Ciclano|098089


nas demais tabelas basta acrescentar o vinculo dos registros com esse id e pronto.

tb_pedido
ID|DADOS_DO_PEDIDO|ID_CLIENTE

tb_orcamento
ID|DADOS_DO_ORCAMENTO|ID_PEDIDO


Pronto, para vincular na consulta basta usar as famosas JOINs


SELECT cli.nome, ped.dados_do_pedido, orc.dados_do_orcamento
FROM tb_cliente cli
LEFT JOIN tb_pedido ped ON cli.id = ped.id_cliente
LEFT JOIN tb_orcamento orc ON ped.id = orc.id_pedido







3. Re: Duvidas sobre Logica PHP ?

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 17/04/2013 - 07:45h

As tabelas Pedido e Orcamento devem ter o o campo CPF do cliente como chaves estrangeiras. Isto tem que ser feito no banco de dados e não no sistema PHP.

SELECT nome FROM cliente WHERE cpf = 12345678912;
SELECT produtos, numero FROM orcamento WHERE cpf = 12345678912;
SELECT produtos, numero FROM pedido WHERE cpf = 12345678912;


4. Re: Duvidas sobre Logica PHP ?

Jonathan Rodrigues
john_master12

(usa Ubuntu)

Enviado em 17/04/2013 - 10:53h

rei_astro escreveu:

As tabelas Pedido e Orcamento devem ter o o campo CPF do cliente como chaves estrangeiras. Isto tem que ser feito no banco de dados e não no sistema PHP.

SELECT nome FROM cliente WHERE cpf = 12345678912;
SELECT produtos, numero FROM orcamento WHERE cpf = 12345678912;
SELECT produtos, numero FROM pedido WHERE cpf = 12345678912;


estou usando bases de dados para o mesmo, a base consiste na seguinte estruturas

tb_clientes
tb_produtos
tb_orçamentos
tb_pedidos

a duvida é como relacionar essas tabelas para que ela consulte quando pesquiso por exemplo 1 cliente
tipo assim
tb_cliente_______tb_orçamento________________tb_pedido
Viva Linux ______Orçamento_____aprovação______Compra
_________________e seus produtos_______________


5. Re: Duvidas sobre Logica PHP ?

Jonathan Rodrigues
john_master12

(usa Ubuntu)

Enviado em 17/04/2013 - 11:02h

rai3mb escreveu:

chaves estrangeiras.

Na tabela cliente vc vai ter um campo como chave para identificar um cliente.

tb_cliente
ID|NOME|CPF
1|Fulano|98098098
2|Ciclano|098089


nas demais tabelas basta acrescentar o vinculo dos registros com esse id e pronto.

tb_pedido
ID|DADOS_DO_PEDIDO|ID_CLIENTE

tb_orcamento
ID|DADOS_DO_ORCAMENTO|ID_PEDIDO


Pronto, para vincular na consulta basta usar as famosas JOINs


SELECT cli.nome, ped.dados_do_pedido, orc.dados_do_orcamento
FROM tb_cliente cli
LEFT JOIN tb_pedido ped ON cli.id = ped.id_cliente
LEFT JOIN tb_orcamento orc ON ped.id = orc.id_pedido






Vamos ver se entendi
em cada tabela eu tenho que criar um campo de id_(nome da tabela, para que na hora da consulta
ele puxa os dados sendo assim no pagina de consulta/alteração tenho que criar "basicamente" em While
tabelas
tb_cliente
id|nome|cpf
tb_orçamento
id|cliente(id da tb_cliente)|produto (id da tb_produto)|
tb_pedido
id|orçamento aprovado (id da tb_orçamento)
isso?







6. Re: Duvidas sobre Logica PHP ?

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 17/04/2013 - 12:30h

Vc ta misturando as coisas.

Tens q criar chaves primárias e estrangeiras.

No fim do dia ajudo mais estou no trabalho...

*obs. Não costumo usar cpf como chave porque existe casos onde 2 pessoas podem usar o mesmo cpf.


7. Re: Duvidas sobre Logica PHP ?

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 17/04/2013 - 18:19h

Você conhece a sintaxe da SQL?


8. Re: Duvidas sobre Logica PHP ?

Leonardo
leonardo0112

(usa Linux Mint)

Enviado em 17/04/2013 - 23:08h

Como nossos amigos disseram, tem que "ligar" uma tabela na outra com chave estrangeira e com chave primária, geralmente denominada NOMETABELA_id (cliente_id; produto_id, ou simplificando cli_id, pro_id).

A chave primária da tabela cliente é cliente_id, que por sua vez se tornará chave estrangeira na tabela produto, ficando produto_cliente_id (evite usar cliente_id novamente, pois em uma consulta com JOIN terá que colocar TABELA.CAMPO pois terá 2 campos com mesmo nome, ams em tabelas diferentes).

Enfim, na hora de puxar os dados do banco e formar a "frase" no relatorio, faça a função PHP usando o SELECT e JOIN como nosso colega postou e concatene com os valores usando o PHP, tipo: <?php echo "Cliente " . $resultado['nome'] . " gastou " . $resultado['valor_total']...; ?> e assim vai...


9. Re: Duvidas sobre Logica PHP ?

Jonathan Rodrigues
john_master12

(usa Ubuntu)

Enviado em 18/04/2013 - 08:20h

leonardo0112 escreveu:

Como nossos amigos disseram, tem que "ligar" uma tabela na outra com chave estrangeira e com chave primária, geralmente denominada NOMETABELA_id (cliente_id; produto_id, ou simplificando cli_id, pro_id).

A chave primária da tabela cliente é cliente_id, que por sua vez se tornará chave estrangeira na tabela produto, ficando produto_cliente_id (evite usar cliente_id novamente, pois em uma consulta com JOIN terá que colocar TABELA.CAMPO pois terá 2 campos com mesmo nome, ams em tabelas diferentes).

Enfim, na hora de puxar os dados do banco e formar a "frase" no relatorio, faça a função PHP usando o SELECT e JOIN como nosso colega postou e concatene com os valores usando o PHP, tipo: <?php echo "Cliente " . $resultado['nome'] . " gastou " . $resultado['valor_total']...; ?> e assim vai...


Agora sim... consegui entender vou fazer os testes aqui para ver... deixarei o tópico em aberto para postar o resultado
obrigado a todos pelas paciência.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts