Para inaugurar a sessão de artigos, segue ai uma boa dica de banco de dados. Não existe nada pior do que excluir um registro “A” e o registro “B” perder sua referencia. Existem varias formas de evitar esse tipo de erro, nesse artigo irei ensinar uma rotina que é capaz de analisar o registro e verificar se o mesmo está associado a outro evitando perder referencia.
1 - Lógica
- Verificar todas as tabela do banco de dados
- Verificar se existe o campo
- Verificar se o campo contém valor que se deseja excluir
- Se existir conta mais um e retorna false
- Se não, excluir o registro com segurança e retorna true
2 – Funções do PHP utilizadas
- Mysql_connect
- Mysql_select_db
- Mysql_num_fields
- Mysql_query
- Mysql_fetch_row
- Mysql_fetch_assoc
- Mysql_fetch_field
3 – Comentários
Existem outros métodos mais eficazes capaz de fazer isso, e minha opinião a forma mais eficaz é unir REGRA de banco de dados e uma boa rotina de exclusão. Até Breve!!
4 – Função
/*************************************************************** * Descricao: * Função para verificar registros relacionados, caso exista * itens relacionados, retorna falso * Atributos: * $tabelaCheck = Nome da Tabela Princial [String] * $campoCheck = Campo que deseja Verificar [String] * $idCheck = Valor que deseja Verificar [int] * Observação: * A tabela que deseja verificar, não a que existe o relaciona- * mento e sim a tabela onde existe o registro principal * * By Douglas Lira – curisco_filezzim@hotmail.com ****************************************************************/ function checkExclude($tabelaCheck,$campoCheck,$idCheck) { // Iniciando Classe de Conexão // Pegando os Dados $tabela = $tabelaCheck; $campo = $campoCheck; $id = $idCheck; // Contador $check = 0; // Criando o SQL // Listando as Tabelas // Excluido da Pesquisa o tabela referencia if($row[0] != $tabela) { // Fazendo a Seleção e Verificando se Existe o campo $sqlSelect = "SELECT * FROM ".$row[0]; // Contador $i = 0; // Fazendo a Listagem // Armazenando Buffer // Verificando se Existe esse Campo if($meta->name == $campo) { // Verificando se Existe algum item com esse ID $sqlCheck = "SELECT ".$campo." FROM ".$row[0]." WHERE ".$campo." = '".$id."' "; // Check $check++; } } // $i++; } } } // Verificando if($check > 0) { // Enviando o Resultado return false; } else { // Excluindo a Informação $sqlExclude = "DELETE FROM ".$tabela." WHERE ".$campo." = '".$id."' "; // Enviando o Resultado return true; } }