kaamus 0 Denunciar post Postado Julho 21, 2008 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
Kandrade 7 Denunciar post Postado Julho 21, 2008 Como é o relacionamento no banco? Compartilhar este post Link para o post Compartilhar em outros sites
kaamus 0 Denunciar post Postado Julho 21, 2008 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
Kandrade 7 Denunciar post Postado Julho 21, 2008 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
Marcio Leandro 0 Denunciar post Postado Julho 21, 2008 Nestes casos, é importante implementar o controle de transações e constraints da tabela. Compartilhar este post Link para o post Compartilhar em outros sites
kaamus 0 Denunciar post Postado Julho 21, 2008 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
Marcio Leandro 0 Denunciar post Postado Julho 21, 2008 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
Kandrade 7 Denunciar post Postado Julho 21, 2008 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
kaamus 0 Denunciar post Postado Julho 21, 2008 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
Marcio Leandro 0 Denunciar post Postado Julho 21, 2008 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
kaamus 0 Denunciar post Postado Julho 21, 2008 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
Marcio Leandro 0 Denunciar post Postado Julho 21, 2008 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
Kandrade 7 Denunciar post Postado Julho 21, 2008 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
kaamus 0 Denunciar post Postado Julho 21, 2008 não entendi como fazer isso kandrade .. eu faço um select com where? Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Julho 21, 2008 Posts mesclados, favor não postar repetidamente. Compartilhar este post Link para o post Compartilhar em outros sites