Ir para conteúdo

POWERED BY:

Arquivado

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

Rodolfo Teixeira

Insert, update, delete e select entre tabelas com relacionamento

Recommended Posts

Olá a todos.

Minhas dúvidas são as seguintes eu tenho 3 tabelas.

 

T: Exemplo1

C: IdEx1

C: Nome_Ex1

 

T: Exemplo2

C: IdEx2

C: Nome_Ex2

C: Ex1_IdEx2

 

T: Exemplo3

C: IdEx3

C: Nome_Ex3

C: Ex2_IdEx3

C: Ex1_IdEx3

 

Para inserir os dados eu fiz em 2 passos.

 

Inseri dados na tabela Ex1.

 

$db_query_insert = sprintf(“INSERT INTO Exemplo1(nome_Ex1)VALUES (‘$variavel_do_form’”);

Mysqli_query($conexao, $db_query_insert);

 

Pronto aqui funcionou beleza.

 

Inserir dados na tabela 2

 

$db_query_select = sprintf(“SELECT * FROM Exemplo1 WHERE nome_Ex1=’$variavel_do_form’”);

$Ex1_select = Mysqli_query($conexao, $db_query_select);

$id_Ex1 = mysql_fetch_rows($Ex1_select);

$db_query_insert = sprintf(“INSERT INTO Exemplo2(nome_Ex2,Ex1_idEx2)VALUES (‘$variavel_do_form’, $id_Ex1[‘idEx1’]”);

Mysqli_query($conexao, $db_query_insert);

 

Pronto aqui também funcionou.

 

Mas as duvidas são as seguintes, para deletar caso os dados não tenham relacionamento basta fazer o seguinte comando

 

DELETE Exemplo1 FROM Exemplo1 WHERE idExt = ‘$Variavel_do_form’ OR nome_Ex1 = ‘$Variavel_do_form’

 

E para deletar caso aja relacionamento.

 

DELETE a,b FROM Exemplo2 AS a LEFT JOIN Exemplo1 AS b ON a.Ex1_IdEx2= b.IdEx1 WHERE b. Nome_Ex1=‘$Variavel_do_form’

 

Bom isso foi o que eu usei e funcionou, mas usei pra apagar apenas um registro ou sejá não sei se funcionaria para mais de um registro.

As duvidas são.

Existe uma maneira de deletar usando só um comando SQL neste caso?

 

Vocês sabem como fazer um update e o select com relacionamento? Pois o que eu encontrei só deu para fazer o select em uma tabela, insert com uma tabela e delete com uma ou varias tabelas, mas não sei se é a forma mais correta, mas sei que funcionou. http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

 

É possível ordenar com o comando ORDER BY pelo numero de linhas?

 

Esse comando (“INSERT INTO Exemplo1(nome_Ex1), Exemplo2(nome_Ex2,Ex1_idEx2) VALUES Exemplo1.(‘$variavel_do_form’),Exemplo2.(‘$variavel_do_form’,( Exemplo2.Ex1_idEx2=Exemplo1.idEx1))”

 

É um comando valido?

 

Se não é, qual a melhor maneira de inserir dados em duas tabelas com relacionamento?

 

Bom, é isso ai pessoal, fico no aguardo de resposta. T++

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá novamente

 

Bom Leonardo gostei muito da sua sugestão esse site tem ótimos exemplos, mas alem deste site andei dando mais umas pesquisadas pela net e inclusive no próprio site do mysql, e descobri que a melhor maneira de se executar grandes comandos SQL e fazê-los passo a passo utilizando store procedures e triggers dessa maneira é só passar as variáveis e a ação que o banco faz o resto, isso limpa o código em php e facilita a organização, alem do mais pelo que eu pesquisei dessa maneira o servidor web é menos requisitado, e a resposta do SQL fica mais rápida já que é o próprio banco que executa o script SQL.

 

Bom mas ainda tenho que pesquisar mais um pouco por que a linguagem SQL apesar de ser parecida com delph nas estruturas ela é bastante complexa na minha opinião, por se trabalhar com conjuntos e elementos de conjuntos, mas não vou desanimar.

 

Bom mas sem querer fugir do assunto me surgiu outra duvida mas agora com relação ao php,

o que acontece é o seguinte eu já fiz muito mais scripts em php, mas também já fiz em asp.net usando c#, e agora nos últimos dias eu percebi que na programação asp.net eu conseguia fazer os códigos a partir dos eventos dos elementos da pagina, por exemplo onclick, onchange, pagload e outros diversos, e então eu me toquei que toda vês que eu uso um script php de exemplo que eu pego ou vejo pela net, eles usam o javascript para trabalhar com um evento.

 

Então minha duvida é a seguinte á uma maneira de trabalhar com eventos diretamente com php?

 

Peço desculpas se isso parece absurdo mas é que tudo o que eu aprendi sobre o php foi através da internet, mas acho que perguntar não ofende.

 

É isso pessoal fico no aguardo de respostas, e se vocês descordarem sobre o que eu falei do SQL por favor postem o que vocês descordarão e o porque, peço isso por que sei que nos aprendemos muito mais errando e depois reparando nosso erros. http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

 

T++

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.