Moran 0 Denunciar post Postado Novembro 14, 2011 Vou tentar explicar o que ta acontecendo. Possuo uma tabela chamada cliente, 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,comp lemento_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. se eu der um echo, aparece o que eu digitei no formulario. o problema ta no insert. Acredito que seja algum problema na minha chave estrangeira, eu acho em nenhum lugar como eu devo tratar a chave estrangeira no meu php. Agradeço a Toda juda que vier e aqueles que tentaram me ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Novembro 15, 2011 Amigo, você errou na modelagem. O correto é que "carrinho" tenha uma chave-estrangeira relacionada a cliente, pois um cliente pode ter vários carrinhos, mas cada carrinho tem um só cliente... Compartilhar este post Link para o post Compartilhar em outros sites
Moran 0 Denunciar post Postado Novembro 15, 2011 Pior que passei a noite pensando nisso. vou mudar aqui , daqui a pouco ja respondo se resolveu .. Muito obrigado pela força. (Y) Bom resolveu o problema dessa tabela mas o problema foi para a outra, não consigo gravar nada na tabela carrinho. #1452 - Cannot add or update a child row: a foreign key constraint fails (`mydb2`.`carrinho`, CONSTRAINT `fk_carrinho_produtos1` FOREIGN KEY (`produtos_id_produtos`) REFERENCES `produto` (`id_produtos`) ON DELETE NO ACTION ON UPDATE NO ACTION) Bom se algum puder me ajudar fico muito grato. Bom acredito que eu tenha resolvido o meu problema,mas gostaria de conta com a esperiencia de vocês. Peço que deem uma olhada no meu banco de dados, e caso achem agum problema, favor fiquem a vontade de me responder. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; CREATE SCHEMA IF NOT EXISTS `mydb3` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ; USE `mydb3` ; -- ----------------------------------------------------- -- Table `mydb3`.`adm` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `mydb3`.`adm` ( `id_adm` INT NOT NULL AUTO_INCREMENT , `login_adm` VARCHAR(45) NOT NULL , `senha_adm` VARCHAR(45) NOT NULL , PRIMARY KEY (`id_adm`) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci; -- ----------------------------------------------------- -- Table `mydb3`.`sac` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `mydb3`.`sac` ( `id_sac` INT NOT NULL AUTO_INCREMENT , `nome_sac` VARCHAR(45) NOT NULL , `email_sac` VARCHAR(200) NOT NULL , `telefone_sac` VARCHAR(45) NOT NULL , `comentario_sac` VARCHAR(500) NOT NULL , PRIMARY KEY (`id_sac`) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci; -- ----------------------------------------------------- -- Table `mydb3`.`cliente` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `mydb3`.`cliente` ( `id_cliente` INT NOT NULL AUTO_INCREMENT , `nome_cli` INT NOT NULL , `telefone_cli` INT 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(300) NOT NULL , `senha_cli` VARCHAR(45) NOT NULL , `pergunta_cli` INT NOT NULL , `resposta_cli` VARCHAR(200) NOT NULL , PRIMARY KEY (`id_cliente`) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci; -- ----------------------------------------------------- -- Table `mydb3`.`produto` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `mydb3`.`produto` ( `id_produtos` INT NOT NULL AUTO_INCREMENT , `produto` VARCHAR(500) NOT NULL , `descricao` VARCHAR(500) NOT NULL , `valor` VARCHAR(20) NOT NULL , `especie` VARCHAR(100) NOT NULL , `img` BLOB NOT NULL , `principal` VARCHAR(45) NOT NULL , `adm_id_adm` INT NOT NULL , PRIMARY KEY (`id_produtos`) , INDEX `fk_produto_adm` (`adm_id_adm` ASC) , CONSTRAINT `fk_produto_adm` FOREIGN KEY (`adm_id_adm` ) REFERENCES `mydb3`.`adm` (`id_adm` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci; -- ----------------------------------------------------- -- Table `mydb3`.`carrinho` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `mydb3`.`carrinho` ( `id_carrinho` INT NOT NULL AUTO_INCREMENT , `quantidade` INT NOT NULL , `sessao` TEXT NOT NULL , `cliente_id_cliente` INT NOT NULL , `produto_id_produtos` INT NOT NULL , PRIMARY KEY (`id_carrinho`) , INDEX `fk_carrinho_cliente` (`cliente_id_cliente` ASC) , INDEX `fk_carrinho_produto1` (`produto_id_produtos` ASC) , CONSTRAINT `fk_carrinho_cliente` FOREIGN KEY (`cliente_id_cliente` ) REFERENCES `mydb3`.`cliente` (`id_cliente` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_carrinho_produto1` FOREIGN KEY (`produto_id_produtos` ) REFERENCES `mydb3`.`produto` (`id_produtos` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; Esse é o banco de dados que eu estou usando. qualquer coisa só comentar que eu respondo em seguida. Muito obrigado a todos aqueles que ajudaram, seja diretamente ou indiretamente. Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Novembro 15, 2011 Você só pode gravar uma entrada na tabela "carrinho" se já tiver dados na tabela "cliente". Compartilhar este post Link para o post Compartilhar em outros sites