Rafael-Moran Posted November 12, 2011 Report Share Posted November 12, 2011 Bom minha divida é com tratar a chave estrangeira.Bom é o seguinte.tenho duas tabelas, Cliente e carrinhoonde o Id carrinho é chave estrangeira da tabela cliente.o id_carrinho, faz referencia a tabela carrinho.com mas minha duvida é como tratar a chave estrangeira.sei que a chave estrangeira serve para fazer a ligação de uma tabela com a outra.mas não intendi ate agora que dados ela recebe, como eu tenho que tratar ela.E no meu php, quando estou dando um insert nela tabela cliente, eu devo inserir algum dado na chave estrangeira.Espero estar sendo claro na minha duvida.Abrigado pela atenção. Quote Link to comment Share on other sites More sharing options...
0 Rafael-Moran Posted November 14, 2011 Author Report Share Posted November 14, 2011 Vou tentar me explicar melhor.Possuo essa tabela, onde ficara gravada o cadastro do cliente.-- Banco de Dados: `mydb`-- Estrutura da tabela `cliente`--CREATE TABLE IF NOT EXISTS `cliente` ( `id_cliente` int(255) NOT NULL AUTO_INCREMENT, `nome_cli` varchar(500) NOT NULL, `telefone_cli` varchar(100) NOT NULL, `endereco_cli` varchar(200) NOT NULL, `bairro_cli` varchar(200) NOT NULL, `numero_cli` varchar(45) NOT NULL, `complemento_cli` varchar(45) NOT NULL, `email_cli` varchar(200) NOT NULL, `senha_cli` varchar(45) NOT NULL, `pergunta_cli` varchar(500) NOT NULL, `resposta` varchar(500) NOT NULL, `carrinho_id_carrinho` int(11) NOT NULL, PRIMARY KEY (`id_cliente`), KEY `fk_cliente_carrinho1` (`carrinho_id_carrinho`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;---- Restrições para as tabelas dumpadas------ Restrições para a tabela `cliente`--ALTER TABLE `cliente` ADD CONSTRAINT `fk_cliente_carrinho1` FOREIGN KEY (`carrinho_id_carrinho`) REFERENCES `carrinho` (`id_carrinho`) ON DELETE NO ACTION ON UPDATE NO ACTION; No PHP eu tenho assim $sql = "insert into cliente(id_cliente,nome_cli,telefone_cli,endereco_cli,bairro_cli,numero_cli,complemento_cli,email_cli,senha_cli,pergunta_cli,resposta_cli,) values ('','$nome','$telefone','$endereco','$bairro','$numero','$bloco','$email','$senha','$pergunta','$resposta','')";$consulta = mysql_query($sql);if($consulta) {echo "<script>alert('Cadastrado com sucesso'); window.location.href='../index.html'; </script>";; exit; }else{ echo"<script>alert('Não foi possivel efetuar o seu cadastro tente mais tarde pode ser um problema no servido!'); window.location.href='../home/home.php; </script>";; exit;}Acredito que o meu insert esteja certo, mas não esta inserindo os dados no banco de dados, e não me retorna nenhum erro, a pagina simplesmente fica braca.Acredito que seja algum problema na minha chave estrangeira, eu acho em nenhum lugar como eu devo tratar a chave estrangeira no meu php. Quote Link to comment Share on other sites More sharing options...
0 Denis Courcy Posted November 16, 2011 Report Share Posted November 16, 2011 Oi 'Rafael-Moran',Tente entender melhor assim:1 cliente pode ter 0 ou muitos carrinhos, certo?0 carrinhos porque ele acabou de fazer o cadastro e ainda não faz nenhuma compra e muitos (de 1 a infinito) serão as quantidades de compras (carrinhos) efetuados de cada vez.Então, é a tabela carrinho que deverá guardar o ID do cliente e não o inverso como você fez.Em tese, sua lógica ficará assim:Quando um cliente faz um cadastro, ele não tem a obrigatoriedade de fazer uma compra inicial. Os dados do cliente são os que caracterizam o cliente como pessoa. Então somente a tabela cliente é gravadaQuando o cliente vai fazer uma compra, ele "pega" um carrinho (quer dizer que cada compra gravada na tabela carrinho conterá o id do cliente)Quando você for fechar a compra do carrinho, deverá somar todos os valores daquele cliente.É isso.Se você tiver mais dúvidas poste-as aqui. Quote Link to comment Share on other sites More sharing options...
Question
Rafael-Moran
Bom minha divida é com tratar a chave estrangeira.
Bom é o seguinte.
tenho duas tabelas,
Cliente e carrinho
onde o Id carrinho é chave estrangeira da tabela cliente.
o id_carrinho, faz referencia a tabela carrinho.
com mas minha duvida é como tratar a chave estrangeira.
sei que a chave estrangeira serve para fazer a ligação de uma tabela com a outra.
mas não intendi ate agora que dados ela recebe, como eu tenho que tratar ela.
E no meu php, quando estou dando um insert nela tabela cliente, eu devo inserir algum dado na chave estrangeira.
Espero estar sendo claro na minha duvida.
Abrigado pela atenção.
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.