acborba 0 Denunciar post Postado Dezembro 19, 2008 Pessoal tenho duas tabelas: tb_pergunta: idPergunta (pk) idGrupo (fk) pergunta ativa data tb_grupo: idGrupo (pk) grupo Pegunta: Como faço para relacionar essas duas tabelas em php sendo que no banco já foi criado? Por exemplo: eu crio um grupo (biblioteca) em seguida as perguntas relacionadas a esse grupo. Depois crio um novo grupo e em seguida as perguntas relacionadas a esse grupo assim por diante... já tentei de tudo mas até agora nada! Aqui estou verificando se o grupo já exsite e inserindo. <? include "conexao.inc"; $g=$_GET['grupo']; $resultado_grupo=mysql_query("SELECT * FROM grupo WHERE grupo='$g'"); $reg=mysql_num_rows($resultado_grupo); if($reg < 1){ $inserir_grupo=mysql_query("INSERT INTO grupo VALUES(idGrupo,'$g')"); $r=mysql_query("SELECT idGrupo FROM grupo") } else{ ?> <script> alert("Grupo já cadastrado!") location="cadastro_questionario1.php" </script> <? } Aqui estou inserindo a pergunta: $inserir_pergunta=mysql_query("INSERT INTO pergunta VALUES(idPergunta,idGrupo,'$p','$ativa','$dat')");. Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Dezembro 19, 2008 Acho que seria mais fácil você relacionar tabelas usando um Gerenciador de Bancos de Dados, como MySQL, Postgre, etc. Estes sistemas são especialistas nisso. Compartilhar este post Link para o post Compartilhar em outros sites
acborba 0 Denunciar post Postado Dezembro 19, 2008 Acho que seria mais fácil você relacionar tabelas usando um Gerenciador de Bancos de Dados, como MySQL, Postgre, etc. Estes sistemas são especialistas nisso. Mas isto ja esta feito! Agora eu quero que quando eu insira na tabela grupo (idGrupo PK) apareça na tabela pergunta (idGrupo FK). http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif Compartilhar este post Link para o post Compartilhar em outros sites
Renato Siroma 2 Denunciar post Postado Dezembro 19, 2008 CREATE TRIGGER nome { BEFORE | AFTER } { evento [OR ...] } ON tabela FOR EACH { ROW | STATEMENT } EXECUTE PROCEDURE função ( argumentos ) ______________________________________________________ CREATE TRIGGER se_vc_inserir BEFORE DELETE OR UPDATE ON <tabela>FOR EACH ROW EXECUTE insert insere_lá_na_ota(<comandoINSET>); Compartilhar este post Link para o post Compartilhar em outros sites
acborba 0 Denunciar post Postado Dezembro 19, 2008 Não sou bom com triggers mas seria algo do tipo: CREATE TRIGGER inserir BEFORE INSERT ON pergunta FOR EACH ROW EXECUTE INSERT INTO pergunta VALUES(idGrupo); Compartilhar este post Link para o post Compartilhar em outros sites
Renato Siroma 2 Denunciar post Postado Dezembro 19, 2008 é esse o espirito da trigger.. mas acho que tem que mudar este values. suponho que nao vá conseguir Pois: BEFORE INSERT ON = depois que inserir em; execute Insert on = inserir em; os nomes estão iguais 'pergunta' troca iso =D Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Dezembro 19, 2008 Movido: PHP=>MySQL Compartilhar este post Link para o post Compartilhar em outros sites
acborba 0 Denunciar post Postado Dezembro 19, 2008 é esse o espirito da trigger.. mas acho que tem que mudar este values. suponho que nao vá conseguir Pois: BEFORE INSERT ON = depois que inserir em; execute Insert on = inserir em; os nomes estão iguais 'pergunta' troca iso =D Algo assim? CREATE TRIGGER se_vc_inserir BEFORE INSERT ON grupo FOR EACH ROW EXECUTE INSERT INTO pergunta VALUES(idGrupo); Compartilhar este post Link para o post Compartilhar em outros sites
acborba 0 Denunciar post Postado Dezembro 19, 2008 Tentei assim tb mas dá erro. :huh: CREATE TRIGGER inserir BEFORE INSERT OR UPDATE ON grupo FOR EACH ROW INSERT INTO pergunta SET idGrupo = NEW.idGrupo; Compartilhar este post Link para o post Compartilhar em outros sites
acborba 0 Denunciar post Postado Dezembro 19, 2008 Depois de muito tempo a trigger foi criada, mas parou de inserir o grupo apenas a pergunta. CREATE TRIGGER inserir BEFORE INSERT ON grupo FOR EACH ROW INSERT pergunta SET grupo.idGrupo = pergunta.idGrupo; Compartilhar este post Link para o post Compartilhar em outros sites
acborba 0 Denunciar post Postado Dezembro 22, 2008 Eu tentei algo assim sem trigger mas nao funcionou: <? include "conexao.inc"; $g=$_GET['grupo']; $resultado_grupo=mysql_query("SELECT * FROM grupo WHERE grupo='$g'"); $reg=mysql_num_rows($resultado_grupo); if($reg < 1){ $inserir_grupo=mysql_query("INSERT INTO grupo VALUES(idGrupo,'$g')"); } else{ ?> <script> alert("Grupo já cadastrado!") location="cadastro_questionario1.php" </script> <? } $p=$_GET['pergunta']; $p2=$_GET['pergunta2']; $s=mysql_query("SELECT MAX(idGrupo) FROM grupo"); $inserir_pergunta=mysql_query("INSERT INTO pergunta VALUES(idPergunta,'$s','$p','$ativa','$dat')"); if ($p2!=''){ $inserir_pergunta=mysql_query("INSERT INTO pergunta VALUES(idPergunta,idGrupo,'$p2','$ativa','$dat')"); } ?> Só lembrando que o objetivo é inserir algumas perguntas relacionadas ao grupo (novo ou já cadastrado listado em um combo). Compartilhar este post Link para o post Compartilhar em outros sites
acborba 0 Denunciar post Postado Dezembro 23, 2008 Alguem tem algum palpite?? :huh: Compartilhar este post Link para o post Compartilhar em outros sites
acborba 0 Denunciar post Postado Dezembro 26, 2008 ninguem trabalha com relacionamentos? :huh: Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Dezembro 27, 2008 qual eh a sua dificuldade e q erro esta dando? Compartilhar este post Link para o post Compartilhar em outros sites
acborba 0 Denunciar post Postado Dezembro 27, 2008 qual eh a sua dificuldade e q erro esta dando? A minha dificuldade é de como inserir um grupo e em seguida as perguntas referente a esse grupo. Eu consgo inserir separadamente mas não consigo relacionar as duas tabelas na hora de inserir no php. No banco ja esta feito o relacionamento. Compartilhar este post Link para o post Compartilhar em outros sites
acborba 0 Denunciar post Postado Dezembro 29, 2008 Já estou 1 mes nisso e nada! :huh: Eu quero fazer o seguinte: tb_grupo: idGrupo (pk) - 012 grupo - biblioteca tb_pergunta: idPergunta (pk) - 001 idGrupo (fk) - 012 pergunta - O que você acho do acervo? ativa - 1 data - 2008/12/29 Só isso! alguem pode me dar uma luz. Estou usando php e mysql. Compartilhar este post Link para o post Compartilhar em outros sites