Em primeiro lugar gostaria de me apresentar, meu nome é Leo Baiano
(apelido claro...rs) e sou novo na área de programação para WEB, vou
dando minhas cabeçadas aqui e ali e no maior estilo POG vou
conseguindo me virar.
Chego logo com um problema que gostaria que me ajudassem a resolver,
tenho uma tabela onde cadastro cursos, outra onde cadastro os
professores do curso e outra onde cadastro as disciplinas do curso.
Na edição de Curso eu criei um botão para excluir o curso e gostaria
de excluir por completo o registro em toda base de dados, não só na
tabela curso. Tenho um campo chamado id_curso nas tabelas professores
e disciplinas, este campo recebe o valor ID do curso correspondente e
através dele tentei a seguinte solução:
$registro = $_GET["registro"];
if (!$registro == '') {
include "conect.php";
$sql = "DELETE FROM curso WHERE id='$registro'";
$sql1 = "DELETE FROM disciplinas WHERE id_curso='$registro'";
$resultado = mysql_query($sql)
or die (mysql_error());
$resultado1 = mysql_query($sql1)
or die (mysql_error());
}
Desta forma consigo excluir mas como podem ver foi uma gambiarra... eu
poderia utilizar deste mesmo artificio e repetir o código assim:
$sql2 = "DELETE FROM professores WHERE id_curso='$registro'";
$resultado2 = mysql_query($sql2)
or die (mysql_error());
E pronto, ao clicar no botão de deletar automaticamente apagaria os
dados do curso nas 3 tabelas, já fiz o teste e deu certo mas o
problema é que imagino que esta não é a forma correta de se fazer pois
suja demais o código e o torna complicado quando é necessário apagar
os registros relacionados em várias tabelas. No meu caso citei apenas
3 tabelas mas na verdade tenho outras como, alunos, projetos, linhas
de pesquisa, área de concentração....
Bom, com relação ao DELETE na tabela curso creio que teria de ser
separada pois o campo a ser pesquisado para deletar é ID e em todas as
outras é ID_curso, então imaginei ser possivel fazer assim:
$registro = $_GET["registro"];
if (!$registro == '') {
include "conect.php";
$sql = "DELETE FROM curso WHERE id='$registro'";
$sql1 = "DELETE FROM disciplinas, professores, alunos, linhas de
pesquisa WHERE id_curso='$registro'";
$resultado = mysql_query($sql)
or die (mysql_error());
$resultado1 = mysql_query($sql1)
or die (mysql_error());
}
Separando por virgula o nome das tabelas...
Bem, não apagou e ainda retornou um erro de sintaxe.
Então a pergunta que faço é, como posso apagar dados de várias tabelas
utilizando apenas uma expressão?
--
Amplexos,
Leo Baiano
www.blog.ljunior.com