PHP e MySQL - Exclusão de dados do banco. [RESOLVIDO]

1. PHP e MySQL - Exclusão de dados do banco. [RESOLVIDO]

Hugo Sousa
goj1

(usa Debian)

Enviado em 06/08/2012 - 19:14h

Boa tarde pessoal!

Estou criando um site para testar meus conhecimentos e fiz um formulário de exclusão como vou citar no código abaixo.

O problema é que quando clico no botão Excluir não exclui o valor do banco e aparece uma mensagem de variável (idmural) não definida na linda 96, mas a mensagem de "Deletado com sucesso" aparece.

Testei uma coisa, quando eu removo o $_POST[idmural] pelo número do id no banco, dá certo. O que eu estou fazendo de errado?
Vejam o código:

<!DOCTYPE html>
<html>
<head>
<title>Painel de controle</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="estilo.css">
<?php
include("../connections/connection.php");
$sql = mysql_select_db($database_Connection)
or die("Erro ao conectar ao banco de dados, contate o administrador!");
?>

</head>
<body id="bodypainel">
<div id="sair">
<a href="<?php echo $logoutAction ?>">Sair</a>
</div>
<div id="logopainel" > <img src="painel2.png" /> </div>
<div id="painel">
<?php
if (isset($_POST['apagar']) && $_POST['apagar'] == "excluir"){
$deleta = mysql_query("DELETE FROM mural WHERE idmural = '$_POST[idmural]'"); <----------Linda 96
if ($deleta == 1) {
echo "Deletado com sucesso!";
} else {
echo "Erro ao deletar!";
}
}
?>
<form id="form1" name="form1" mathod="post" action="" enctype="mulpart/form-data">
<table border="0" align="center">
<tr>
<td id="titulo" colspan="2">Cadastrar Novo Mural</td>
</tr>
<tr>
<td>Título</td>
<td><input id="campo" type="text" name="titulo" size="62" placeholder="Título do novo mural"></td>
</tr>
<tr>
<td>Texto</td>
<td><textarea id="campo" name="texto" rows="10" cols="60">


  


2. Re: PHP e MySQL - Exclusão de dados do banco. [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 06/08/2012 - 19:31h

No codigo que postou não mostra em que momento idmural recebe conteúdo, ai o mesmo fica vazio.....

Se ele precisa de conteúdo coloque-o no seu teste

* Esse id é um inteiro ou texto (julgo que deveria ser inteiro, mas vc está escrevendo na SQL como se fosse texto)

* outro detalhe é no form do codigo postado é method="post" e está como mathod....


<?php
if (isset($_POST['idmural']) && isset($_POST['apagar']) && $_POST['apagar'] == "excluir"){
$deleta = mysql_query("DELETE FROM mural WHERE idmural = {$_POST['idmural']}"); <----------Linda 96
if ($deleta == 1) {
echo "Deletado com sucesso!";
} else {
echo "Erro ao deletar!";
}
}
?>
<form id="form1" name="form1" mathod="post" action="" enctype="mulpart/form-data">
<table border="0" align="center">
<tr>
<td id="titulo" colspan="2">Cadastrar Novo Mural</td>
</tr>
...



3. Re: PHP e MySQL - Exclusão de dados do banco. [RESOLVIDO]

Hugo Sousa
goj1

(usa Debian)

Enviado em 07/08/2012 - 01:23h

Eu entendi em parte a explicação.
Fiz a alteração: $deleta = mysql_query("DELETE FROM mural WHERE idmural = " . $_POST['idmural']);
E não deu em nada. Também corrigi o method...

O erro continua: Notice: Undefined index: idmural in D:\TI\Desenvolvimento\Servidor\wamp\www\criando_site\admin\painel.php on line 96

O código completo:


<!DOCTYPE html>
<html>
<head>
<title>Painel de controle</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="estilo.css">
<?php
include("../connections/connection.php");
$sql = mysql_select_db($database_Connection)
or die("Erro ao conectar ao banco de dados, contate o administrador!");
?>

</head>
<body id="bodypainel">
<div id="sair">
<a href="<?php echo $logoutAction ?>">Sair</a>
</div>
<div id="logopainel" > <img src="painel2.png" /> </div>
<div id="painel">
<?php
if (isset($_POST['apagar']) && $_POST['apagar'] == "excluir"){
$deleta = mysql_query("DELETE FROM mural WHERE idmural = " . $_POST['idmural']); <-- linha 96
if ($deleta == 1) {
echo "Deletado com sucesso!";
} else {
echo "Erro ao deletar!";
}
}
?>
<form id="form1" name="form1" method="post" action="" enctype="mulpart/form-data">
<table border="0" align="center">
<tr>
<td id="titulo" colspan="2">Cadastrar Novo Mural</td>
</tr>
<tr>
<td>Título</td>
<td><input id="campo" type="text" name="titulo" size="62" placeholder="Título do novo mural"></td>
</tr>
<tr>
<td>Texto</td>
<td><textarea id="campo" name="texto" rows="10" cols="60">
</tr>
</table>
</form>
</div>
<!--Painel-->

<div id="painel">
<?php
$sql = "SELECT idmural, titulo FROM mural ORDER BY data DESC, idmural DESC";
$resultado = mysql_query($sql) or die(mysql_error());
if (@mysql_num_rows($resultado) == 0) {
echo "Nenhum registro encontrado!";
}
?>
<form id="form2" name="form2" method="post" action="" enctype="">
<table align="center">
<tr>
<td><select>
<option id="hoverSelect" value="apaga mural">Selecione o mural para exclusão.</option>
<?php
while ($linha = mysql_fetch_array($resultado)) {
$idmural = $linha[0];
$titulo = $linha[1];
?>
<option id="hoverSelect" value="<?php echo $idmural; ?>"><?php echo $titulo; ?></option>
<?php
}
?>
</select></td>

<td>
<input type="hidden" name="apagar" value="excluir" />
<input id="excluir" type="submit" name="excluir" value="Excluir" />
</td>
</tr>
</table>
</form>
</div><!--Painel-->
</body>
</html>



4. Re: PHP e MySQL - Exclusão de dados do banco. [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 07/08/2012 - 09:31h

Faltou testar o idmural:


...
if (isset($_POST['idmural']) && isset($_POST['apagar']) && $_POST['apagar'] == "excluir"){
...


Em que momento vc popula ele para seu código?


5. Re: PHP e MySQL - Exclusão de dados do banco. [RESOLVIDO]

Hugo Sousa
goj1

(usa Debian)

Enviado em 07/08/2012 - 12:28h

Eu alterei o código para deixar mais limpo e identifiquei que ele não estava excluindo do banco porque estava pegando o idmural 0 e não o idmural selecionado no form select.
A mensagem é: "Mural id 0 deletado com sucesso!". Agora o problema é saber por que ele não pega a opção selecionada no option do select.
Quais são as tagis que se usa aqui, mesmo, no fórum para postar código? rs
Veja como ficou o código (vou postar só as partes pertinenetes):

<?php
$combo = (isset($_POST['idmural']) ? $_POST['idmural'] : 0);
$deleta = mysql_query("DELETE FROM mural WHERE idmural = $combo");
if ($deleta) {
echo "Mural id $combo deletado com sucesso!";
} else {
echo "Erro ao deletar!" . mysql_error();
}
?>

<div id="painel">
<?php
$sql = "SELECT idmural, titulo FROM mural ORDER BY data DESC, idmural DESC";
$resultado = mysql_query($sql) or die(mysql_error());
if (@mysql_num_rows($resultado) == 0) {
echo "Nenhum registro encontrado!";
}
?>
<form id="form2" name="form2" method="post" action="" enctype="mulpart/form-data">
<table align="center">
<tr>
<td><select name="idmual">
<option>Selecione o mural para exclusão.</option>
<?php
while ($linha = mysql_fetch_array($resultado)) {
$idmural = $linha[0];
$titulo = $linha[1];
echo "<option value='$idmural'>$titulo</option>";
}
?>
</select></td>

<td>
<input id="excluir" type="submit" name="excluir" value="Excluir" />
</td>
</tr>
</table>
</form>
</div><!--Painel-->


6. Resolução.

Hugo Sousa
goj1

(usa Debian)

Enviado em 10/08/2012 - 00:43h

Boa noite galera.

Só vim informar que a solução para meu último post é erro de digitação no name="idmual" que deveria ser idmural.

Grande abraço.



  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts