Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

acborba

relacionamento de tabelas em php

Recommended Posts

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

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

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

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

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

é 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

Movido: PHP=>MySQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

é 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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.