Ir para conteúdo

POWERED BY:

Arquivado

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

Nathália 7

Excluir arquivos marcado com checkbox em php

Recommended Posts

Primeira vez que participo deste forum, espero que alguém possa ajudar.

O problema é o seguinte. No meu site tem uma página onde os usuário logados podem fazer upload de arquivos (pdf, .doc, ect.). Ao acessar a página de arquivos é possivel visualizar todos os arquivos que o usuário fez upload. Na frente de cada arquivo tem um checkbox e na tela tem um botão de deletar. Como eu faço para deletar todos os arquivos que estão com o checkbox marcado? Tudo isso é feito em PHP

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aki vai um exemplo

 

lista.php

<form name="form1" method="post" action="deletar.php">
 <input name="del[]" type="checkbox" id="del[]" value="1">Item 1<br>
 <input name="del[]" type="checkbox" id="del[]" value="2">Item 2<br>
 <input name="del[]" type="checkbox" id="del[]" value="3">Item 3<br>
 <input name="del[]" type="checkbox" id="del[]" value="4">Item 4<br>
 <input name="del[]" type="checkbox" id="del[]" value="5">Item 5<br>
 <input type="submit" name="button" id="button" value="deletar">
</form>

 

 

deletar.php

<?php
$del = $_POST['del'];

$i = 0;

while ($del[$i] != "") {

	mysql_query("DELETE FROM tabela WHERE id='".$del[$i]."");

	$i++;
}

header("Location: lista.php");
?>

 

 

Agora a explicação.. se você notar na lista o checkbox tem o [] isso serve para que seja colocado tudo dentro de uma arra.. e na página deletar.php ele recebe essa array e percorre ela deletando registro por registro marcado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tambem pode usar um foreach que e mais simples .. !

usa a clausula IN por questões de performance.

 

assim você envia uma unica query, que faça todos os DELETEs.

DELETE FROM `table` WHERE `id` IN (2,5,15,5)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe a curiosidade e falta de respeito, más até agora não conseguir achar por 2 coisas (aproveitando a situação que este tópico contém):

 

IN

$i++;

 

Qual o significado do IN no mysql e o "++" no $i++.

Obrigado, e desculpe qualquer coisa, caso queiram evitar flood, por favor me enviem uma MP!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o $i ++ , e pra setar o contador ate o ultimo registro alterado , ele seta $i = 0; então se tiver 10 registros

e excluir os 10 , $i = 10 :lol:

???

 

$var++; é o mesmo que fazer:

 

$var = $var + 1;

 

é apenas um acrescimo abreviado.

 

 

IN() é uma clausula da linguagem SQL

http://dev.mysql.com/doc/refman/4.1/pt/any-in-some-subqueries.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fazendo assim, com que imprima na tela quantos documentos foram alterados ou excluidos, interessante. Obrigado Andrey!

 

-----------------

 

Pera aí, agora confundiu a cabeça x.x

Então ++ significa acréscimo, como se você somasse +1. Vou fazer meus testes e tirar minhas conclusões (para não gerar problemas aqui no forum).

Obrigado William!

 

Agora já o IN é como se fosse um "indicador".

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.