Ir para conteúdo

POWERED BY:

Arquivado

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

kaamus

Relacionamento de 2 tabelas

Recommended Posts

Bom dia!

 

Pessoal.. to com problema pra elaborar uma lógica de relacionamento!

tenho duas tabelas-> linha e pecas

 

preciso inserir item nas duas ao mesmo tempo, já criei um relacionamento no banco..

como eu faço no php??

uso dois insert's?

 

eu fiz isso mais não tá legal ainda..

queria saber também como vou fazer o update e delete =/

 

se alguem puder ajudar!

obrigada!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Linha:

idLinha

idIdioma

stNomeLinha

 

Peca:

idTipoPeca

idIdioma

idLinha

stNomePeca

stDescritivoPeca

stImagemPeq

stImagemAmpli

 

as duas são unidas pela idLinha no banco

agora não to sabendo passar isso pro php

 

 

(esqueci de colocar o idlinha na outra tabela)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi voce pode ter dois inserts.

Como elas são unidas pelo idLinha que aparentemente é chave primária da tabela Linha e chave estrangeira de Peca voce precisa iserir primeiro o registro na tabela linha e depois inserir um registro em peca.

 

Eu acho que há melhores formas de fazer isso, mas para te ajudar mais só entendendo o que voce precisa.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nestes casos, é importante implementar o controle de transações e constraints da tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então.. na verdade eu fiz dois insert's

 

só que o problema tá que na linha sai o id da linha

eh na peca não sai.. não sei se to confundindo a lógica..

 

mais na tabela linha não sai o idioma

 

OPA .. beleza.. o idioma eu já acertei só a idLinha que não vai pq ela não vem do formulario

 

só acrescenta na tabela linha que vai subindo o idLinha porque ela é chave

 

fora que se eu faço um select com join o mysql_fetch_array acusa a msg:

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\Priscila Martello\WwwPriscilaMartello\manage\scripts\colecao\colecao.php on line 95

 

=/

 

pô não entendi marcio!

 

e o update? eu fiz dois... mais só to conseguindo alterar na tabela linha =/

E detalhe tá alterando todos os registros da tabela sendo que eu altero só um o.O

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por favor, pare de dar posts seguidos. Pense antes de postar.

 

Posta aqui o código que você usa para fazer os inserts.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de inserir na tabela peca voce deve fazer uma consulta para buscar o idLinha.

As constraints são feitas no banco.

O Marcio sugeriu fazer um relacionamento usando chaves para evitar dados inconsistentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites
CODE
if($stAction == "Gravar"){
$objQueryGravarB = mysql_query("Insert Into linha (idIdioma, stNomeLinha) VALUES ('".$idIdioma."','".$stNomeLinha."')");
$objQueryGravarA = mysql_query("Insert Into peca (idIdioma, stNomePeca, stDescritivoPeca, stImagemPeq, stImagemAmpli) VALUES ('".$idIdioma."', '".$stNomePeca."', '".$stDescritivoPeca."', '".$stImagemPeq."', '".$stImagemAmpli."')");
print "<script>alert('Dados gravados com sucesso');</script>";
unset($stAction);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imagino que idIdioma seja de um tipo inteiro, então não use aspas (se colocar aspas, o SGBD vai entender que você está informando um string).

Veja como ficou:

<?php

if($stAction == "Gravar")
{
	$objQueryGravarB = mysql_query("Insert Into linha (idIdioma, stNomeLinha) VALUES (".$idIdioma.",'".$stNomeLinha."')");
	$objQueryGravarA = mysql_query("Insert Into peca (idIdioma, stNomePeca, stDescritivoPeca, stImagemPeq, stImagemAmpli) VALUES (".$idIdioma.", '".$stNomePeca."', '".$stDescritivoPeca."', '".$stImagemPeq."', '".$stImagemAmpli."')");
	print "<script>alert('Dados gravados com sucesso');</script>";
	unset($stAction);
}

Posta ai o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então tá tudo ok marcio!

 

desculpa pelos posts

 

só a idlinha que é chave da tabela linha que não tá aparecendo na tabela peca

 

ou isso é erro de lógica minha?..

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Dá um echo na variável $idIdioma pra ver o que aparece.

2) coloca o die nas suas querys:

mysql_query('QUERY') or die (mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce precisa buscar o último idLista inserido e acrescentar esse dado no seu insert na tabela peca.

 

if($stAction == "Gravar")
{
	$objQueryGravarB = mysql_query("Insert Into linha (idIdioma, stNomeLinha) VALUES (".$idIdioma.",'".$stNomeLinha."')");

	// antes de inserir na tabela peca, faça uma busca pelo ultimo idLista inserido

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.