Ir para conteúdo

POWERED BY:

Arquivado

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

Bobrinha

como checar se existe um registro antes de deletar?

Recommended Posts

Olá

 

Gostaria de saber como faço para antes de deletar um registro verificar se existe algum registro em outra tabela relacionada a ele, por exemplo digamos que no ID enviado abaixo seja 1, ou seja categoria com ID 1, porem em outra tabela exite uma coluna chamada id_categoria que tem registros referentes a essa categoria então deve so aparecer uma mensagem, vc deve apagar todos os registros relacionados antes de excluir essa categoria, então se não tiver nenhum registro referente a categoria ai deleta.

 

 

o script é esse

 

 

 

<?php


$id = mysql_real_escape_string($_GET["id"]);
$sql = mysql_query("DELETE FROM categoria WHERE id='$id'");


?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

há vários meios..

 

um meio simples é fazer um select nas tabelas dependentes antes de prosseguir com a ação deo DELETE..

Compartilhar este post


Link para o post
Compartilhar em outros sites

A ideia eu tenho mais não sei aplicar, ou seja criar o script, sei que tem que fazer um select onde deve-se verificar se tem valou ou não se é maior ou menor ai usa if exemplo :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc sabe conectar no banco e aplicar um DELETE mas não sabe fazer uma condicional de if else?

:upset:

 

if( $quantidade > 1 ){
  // não deleta
}else{
   // deleta
}

 

Faz aí porque ninguém fará o seu serviço por você... a não ser que apareça algum sobrinho sem noção

Compartilhar este post


Link para o post
Compartilhar em outros sites

É preciso fazer um select count passando o ID em questão, ou um simples select mesmo utilizando a clausula WHERE id='' ....

 

após isso verifique com o mysql_num_rows() a quantidade de registro retornado para este ID, se for igual a 1 você faz o DELETE, nada de complicado nisso... :graduated:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por favor se alguém puder me mostrar um exemplo ou criar o script me falem por favor pq ja falei que a ideia eu tenho não adianta me dizer o que eu ja sei como disse não sei como se faz por isso estou postando

 

Obrigado desde de já a quem puder ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há uma diferença muito grande entre dar uma dica e fazer um serviço de graça.

Você trabalha de graça ? Não né...

 

Se vc quer uma ajuda, então tranquilo.. poste aí o que o vc tentou fazer e como está fazendo..

 

Do jeito que está pedindo dá impressão que vc quer tudo pronto sem fazer esforço, esperando algum bobo alegre fazer o seu serviço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara esse é um forum aberto a todos se não vai ajudar não atrapalha, eu hiem parece que tem 5 anos não to te pedindo nada de graça aqui faz quem quer é um forum livre ok, se eu soubesse como fazer não tava pedindo nada, então tenha no minimo respeito por quem não sabe programar se é que alguem como vc tem educação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Alarete

 

Bom eu fiz assim porem apaga com imagem não categoria ou não

 

 

 

<?php
$id = mysql_real_escape_string($_GET["id"]);

$sql_imagens_check = mysql_query("SELECT imagem FROM imagens_uploads WHERE id_categoria='$id'"); 
if ($sql_imagens_check > 0){ 
        echo "Desculpe você não pode apagar essa categoria por que existem imagens relacionadas a ela"; 
    } 
else{
$sql = mysql_query("DELETE FROM imagens_categorias WHERE id='$id'");
}
?>


Obrigado Alaerte Consegui :)

 

tava faltando o que se falou num_rows nada complicado pra tu que é ninja eu passei 1 semana kkkkkkkkkkk

 

 

 

 

<?php
$id = mysql_real_escape_string($_GET["id"]);


$sql_imagens_check = mysql_query("SELECT id_categoria FROM imagens_uploads WHERE id_categoria='$id'"); 
$imagens_check = mysql_num_rows($sql_imagens_check); 
if ($imagens_check > 0){ 
        echo "Desculpe você não pode apagar essa categoria por que existem imagens relacionadas a ela"; 
    } 
else{
$sql = mysql_query("DELETE FROM imagens_categorias WHERE id='$id'");
echo "<meta http-equiv='refresh' content='2;URL=?pagina=listarcategoriasimagens'>";
echo "<h3>Categoria apagada com sucesso!</h3>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parabéns.

Viu só.. um pouco de esforço e vc se superou.

 

 

Um ponto importante, se a regra do negócio diz "Se for maior que ZERO.."

Isso significa que não precisa contar todos no SELECT.

 

Adicione LIMIT 1

 

mysql_query("SELECT id_categoria FROM imagens_uploads WHERE id_categoria='$id' LIMIT 1"); 

 

 

Nesse trecho, verifique antes se o índice existe, pois está suscetível a erros.

 

$id = mysql_real_escape_string($_GET["id"]);

:seta:

 

if( !isset( $_GET["id"] ) ){    echo 'Error: ID missing'; exit;}$id = mysql_real_escape_string($_GET["id"]);

Desde que as tabelas estejam relacionadas não tem como deletar um registro se ela conter em outra tabela.

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.