Ir para conteúdo

POWERED BY:

Arquivado

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

wilson.crescencio.antonio

Deletar em duas tabelas simultaneamente com PDO

Recommended Posts

Muito bem pessoal agradeço desde já a força. Antes eu deletava na boa das duas tabelas utizando deste código:

if(isset($_POST['deletar'])){
 $id = $_POST['id'];
 $contar = count($id);
 $pasta = '../image/foto';
 for($i=0;$i<$contar;$i++){
	 $deletar = $id[$i];
	 
	  $excluir_img = mysql_query("SELECT * FROM foto WHERE album_id = $deletar");
	  while($resImg = mysql_fetch_array($excluir_img)){
		  $nomeImg = $resImg['foto'];
		   unlink($pasta.'/'.$nomeImg);
	  }
	 $excluir_album = mysql_query("DELETE FROM album WHERE album_id = $deletar");
	 $excluir_album .= mysql_query("DELETE FROM foto WHERE album_id = $deletar");#o ponto (.) serve para concatenar e deletar nas duas tabelas do banco de dados ao mesmo tempo
 }
}

E agora? Utilizando de PDO como fica?


Então... acabei queimando um pouco os neurônios e descobri como fazer o código em PDO.

Ficou assim:

if(isset($_GET['action']) && $_GET['action'] == 'deletatudo'){
	$id = (int)$_GET['id'];

$sqlSelectudo=$con->prepare('SELECT * FROM foto, noticia WHERE foto.id_noticia = :id_noticia AND noticia.id_noticia = :id_noticia');
	$sqlSelectudo->bindValue(':id_noticia', $id, PDO::PARAM_INT);
	$sqlSelectudo->execute();
	$rowCount=$sqlSelectudo->rowCount();
	if($rowCount <= 0){
	   echo'<script>alert("Não há fotos relacionadas à Notícia");</script>';
   }else{
	   $result = $sqlSelectudo->fetch(PDO::FETCH_OBJ);
	
		$foto = $result->foto;/*busco o nome da imagem a ser deletado**/
	   
	   $sqlDeleta = unlink('../../_image/noticia/'.$foto.'');
	   
	   $sqlDeletatudo=$con->prepare('DELETE foto.*, noticia.* FROM foto,noticia WHERE foto.id_noticia = :id_noticia AND noticia.id_noticia = :id_noticia');
		$sqlDeletatudo->bindValue(':id_noticia', $id, PDO::PARAM_INT);
		$sqlDeletatudo->execute();
		$rowCountudo=$sqlDeletatudo->rowCount();
   }
		if($rowCountudo >0);
		echo "Arquivo deletados com sucesso";
   }else{
   echo "nenhum arquivo encontrado";
   }

Espero que seja útil a alguém... mas se puderem mostrar uma outra maneira mais rápida e eficaz, também acho interessante.

Para o que eu precisava está OK.

Tópico resolvido.

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.