Rafael-Moran Postado Novembro 12, 2011 Denunciar Share Postado Novembro 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael-Moran Postado Novembro 14, 2011 Autor Denunciar Share Postado Novembro 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Novembro 16, 2011 Denunciar Share Postado Novembro 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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 para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.