Excluir dois campos de tabelas diferentes

Estou tentato excluir não estou obtendo resultado

<?php
session_start();
include_once("conexao_mysqli.php");
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);

if(!empty($id)){
	$result_usuario = "DELETE FROM metas, entregas USING metas INNER JOIN entregas WHERE id_metas = id_meta AND id_metas= '$id'";
	$resultado_usuario = mysqli_query($conn, $result_usuario);
	if(mysqli_affected_rows($conn)){
		$_SESSION['msg'] = '<div id="exluido" style="border-radius: 6px; width: 926px; color:green; height: 63px; padding: 1.1rem .75rem;" class="alert-success" role="alert">Entrega excluída com sucesso!</div>';
		header("Location: ".$_SERVER['HTTP_REFERER']."#exluido");
	}else{
		
		$_SESSION['msg'] = '<div id="exluido" style="border-radius: 6px; width: 926px; color:green; height: 63px; padding: 1.1rem .75rem;" class="alert-success" role="alert">Entrega excluída com sucesso!</div>';
		header("Location: ".$_SERVER['HTTP_REFERER']."#exluido");
	}
}else{	
	$_SESSION['msg'] = '<div id="exluido" style="border-radius: 6px; width: 926px; background-color: #ff00004f; color:#757575; height: 63px; padding: 1.1rem .75rem;" class="alert-success" role="alert">Entrega não foi excluída com sucesso!</div>';
	header("Location: ".$_SERVER['HTTP_REFERER']."#exluido");
}

so consigo excluir quando tem valores em ambas id

Como assim? Tem alguns dados com id null?

1 curtida

Sim, exatamente isso, nem sempre a id_meta vai ter algum dado cadastro, e eu so consigo excluir id_metas se sempre houver dados cadastrados na id_meta, não se você vai entender oque eu quiz dizem rsrs.

id_meta pode haver algum valor, ou não pode haver nenhum valor. depende de como estiver cadastro no meu banco de dados. so quero que exlua indepente de houver valores no campo id_meta, tentei aqui não obtive resultado.

É uma boa ideia o ID ser null?
Como vc vai saber qual é pra excluir?

1 curtida

quando eu faço o cadastro de id_meta ela puxa o id_metas, eles são iguais relacionados

Se está puxando o ID, como tem alguns null?

1 curtida

São duas tabelas metas e entrega, eu cadastro as metas, não necessariamente cada meta tem que ter uma entrega, mas quando eu cadastro uma entrega ela estará relacionada a uma meta x ou y. quero busca uma solução para esse DELETE, para ele deleta a meta mesmo se não houver uma entrega cadastrada, e se na meta selecionada para excluir houver uma entrega deleta ambas.

Agora entendi kk
Bom, nesse caso daria para fazer 2 queries para deletar:

delete from metas where id_meta = $id;
delete from entregas where id_meta = $id;
1 curtida

conseguir dessa forma rsrs, obrigado. mas nesse caso em uma query somente ñ consigo excluir ambos?

<?php
session_start();
include_once("conexao_mysqli.php");

$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);

if(!empty($id)){
	$result_usuario = "DELETE FROM metas WHERE id_metas = '$id'";
	$resultado_usuario = mysqli_query($conn, $result_usuario);
	if(mysqli_affected_rows($conn)){
		$_SESSION['msg'] = '<div id="exluido" style="border-radius: 6px; width: 926px; color:green; height: 63px; padding: 1.1rem .75rem;" class="alert-success" role="alert">Meta excluída com sucesso!</div>';
		header("Location: ".$_SERVER['HTTP_REFERER']."#exluido");
	}else{
		
		$_SESSION['msg'] = '<div id="exluido" style="border-radius: 6px; width: 926px; background-color: #ff00004f; color:#757575; height: 63px; padding: 1.1rem .75rem;" class="alert-success" role="alert">Meta não foi excluída com sucesso. A meta deve conter ao menos 1 entrega.</div>';
	header("Location: ".$_SERVER['HTTP_REFERER']."#exluido");
	}
}if(!empty($id)){
	$result_usuario2 = "DELETE FROM entregas WHERE id_meta = '$id'";
	$resultado_usuario = mysqli_query($conn, $result_usuario2);
	if(mysqli_affected_rows($conn)){
		$_SESSION['msg'] = '<div id="exluido" style="border-radius: 6px; width: 926px; color:green; height: 63px; padding: 1.1rem .75rem;" class="alert-success" role="alert">Meta excluída com sucesso!</div>';
		header("Location: ".$_SERVER['HTTP_REFERER']."#exluido");
	}else{
		
		$_SESSION['msg'] = '<div id="exluido" style="border-radius: 6px; width: 926px; background-color: #ff00004f; color:#757575; height: 63px; padding: 1.1rem .75rem;" class="alert-success" role="alert">Meta não foi excluída com sucesso. A meta deve conter ao menos 1 entrega.</div>';
	header("Location: ".$_SERVER['HTTP_REFERER']."#exluido");
	}
}else{	
	$_SESSION['msg'] = '<div id="exluido" style="border-radius: 6px; width: 926px; background-color: #ff00004f; color:#757575; height: 63px; padding: 1.1rem .75rem;" class="alert-success" role="alert">Meta não foi excluída com sucesso!</div>';
	header("Location: ".$_SERVER['HTTP_REFERER']."#exluido");
}

Não entendo muito de JOIN, então não saberia corrigir aquela query.

E se quiser executar as duas de vez tem o mysql_multi_query(), então passaria como parâmetro:
DELETE FROM metas WHERE id_meta = $id; DELETE FROM entregas WHERE id_meta = $id;

1 curtida