Ir para conteúdo

POWERED BY:

Arquivado

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

ORisonho

[Resolvido]  função EXCLUIR DADOS php/MYSQL

Recommended Posts

Olá pessoal, estou aqui novamente para pedir uma ajuda a vocês, acredito que alguém mais possa ter essa duvida pois estou fazendo meu código na MÃO sem usar aqueles recursos do DREAMWEAVER que ajudam muito, mas pra quem ta aprendendo não "ensina nada", e no meu caso estou pegando a LÓGICA das coisas, por isso a escolha de fazer na MÃO mesmo.

Vou mostrar pra vocês o que eu estou fazendo.

 

Eu criei um form para incluir dados no banco:

<table width="779" border="0">
  <tr>
	<td class="news2">Inserir Agenda</td>
  </tr>
  
  <tr>
	<td><form name="form" method="POST" action="confirma_informa.php">
<a class="red">Titulo:</a>	  <br/><input type="text" name="titulo" class="news">
<br>
<br>
<a class="red">Informações:</a><br/><textarea rows="2" cols="100" name="informa" class="news"></textarea>
<br>
<br>
<input type="submit" class="news" value="Enviar">
</form></td>
  </tr>
</table>

E na mesma página deixo a função para vermos o conteudo desses dados:

<?php
$sql = "select * from dados order by id asc";
$executar = mysql_query($sql);
while ($exibir = mysql_fetch_array($executar))
{;
echo " -----------------------------------------------------------<br/>".$exibir['bela'];
echo "<span class='red'>Titulo:  </span> <span class='news'>".$exibir ['titulo']."</span>";
echo "<br/>";
echo "<span class='red'>Informações:  </span> <span class='news'>".$exibir ['informa']."</span>";
echo "<br/>";
echo "  <span class='ass'>".$exibir ['data']."</span>";
echo "<br/>";
echo "<form name='form' action='excluir.php'><input type='submit' class='news' value='Excluir'></form>";

}
	
	?>

E por final uma pagina para EXCLUIR os dados selecionados:

<?php include  "conecta.php";?>
<?php
  /*
	Este exemplo mostra como excluir dados em uma tabela
	MySQL usando um código PHP.
  */
 
  
  // Comando SQL para excluir os dados em uma tabela  
  $sql = "DELETE FROM dados WHERE id";
  
  // Executa o comando SQL
  $result = mysql_query($sql);
  
  // Verifica se o comando foi executado com sucesso
  if(!$result)
	die("Falha ao executar o comando: " . mysql_error());
  else
	echo "Dados excluídos com sucesso.";
 
?>
Minha duvida é a seguinte, para quem observou nesse ultimo código que eu mostrei, esta escrito $sql = "DELETE FROM dados WHERE id"; e pela LÓGICA quando ele executa esse comando ele apagada TODOS OS DADOS e não o selecionado, eu gostaria de saber como eu posso fazer para que na hora de apertar EXCLUIR ele apague aquele DADO selecionado, e não todos. A pergunta pode ser boba, mas eu gostaria de entender a lógica de como fazer essa operação.

 

Desde já agradeço a todos que poderem ajudar.

 

Vlw. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

O comando certo é

$id = $_GET['id']// Ou POST, dependendo de onde vem o ID do campo para apagar

$sql = "DELETE FROM dados WHERE id = '$id'";

Espero ter ajudado

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O comando certo é

$id = $_GET['id']// Ou POST, dependendo de onde vem o ID do campo para apagar

$sql = "DELETE FROM dados WHERE id = '$id'";

Espero ter ajudado

 

Carlos Eduardo

Obrigado, eu fiz isso, mas ele EXECUTA mas não APAGA, acho que deve ser algum comando no codigo que MOSTRA O CONTEUDO que deve ter para mandar para a variavel $id que esta no arquivo de excluir.

 

Se alguem poder ajudar...desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não está funcionando, deve ser a variavel que você ta utilizando... ela não deve estar pegando o VALOR para deletar o campo selecionado.

 

Eu chuto um método:

 

$sql = "DELETE FROM `dados` WHERE `id` = `id`";

@Edit

Só que no meu método acima vai deletar todos os campos id's

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não está funcionando, deve ser a variavel que você ta utilizando... ela não deve estar pegando o VALOR para deletar o campo selecionado.

 

Eu chuto um método:

 

$sql = "DELETE FROM `dados` WHERE `id` = `id`";

@Edit

Só que no meu método acima vai deletar todos os campos id's

Consegui achar aqui...e vou compartilhar com vocês.

 

Primeiro eu tive que alterar o codigo do CONTEUDO PARA VERMOS OS DADOS.

<?php
$sql = "select * from dados order by id asc";
$executar = mysql_query($sql);
while ($exibir = mysql_fetch_array($executar))
{
$id		  = $exibir["id"];
echo " </br>-----------------------------------------------------------<br/>".$exibir['bela'];
echo "<span class='red'>Titulo:  </span> <span class='news'>".$exibir ['titulo']."</span>";
echo "<br/>";
echo "<span class='red'>Informações:  </span> <span class='news'>".$exibir ['informa']."</span>";
echo "<br/>";
echo "  <span class='ass'>".$exibir ['data']."</span>";
echo "<br/>";
echo "<span class='red'>Número ID:   </span> <span class='news'>".$exibir ['id']."</span></br>";
echo "<a href=\"excluir.php?id=$id\" class='arquivos'>[ Excluir ]</a>";
}?>

Como podem comparar com o codigo anterior eu adicionei

$id = $exibir["id"];
Que denomina o ID selecionado para apaga-lo

 

E adicionei também dentro de ECHO o seguinte código

echo "<a href=\"excluir.php?id=$id\" class='arquivos'>[ Excluir ]</a>";
Essa função linka o EXCLUIR de maneira que ele ache o ID selecionado.

 

Por ultimo eu fiz uma pequena alteração apenas para podermos ver o numero da ID na tela,

echo "<span class='red'>Número ID:   </span> <span class='news'>".$exibir ['id']."</span></br>";

Na página EXCLUIR.PHP eu fiz o seguinte como vocês mesmos tinham me indicado:

<?php include  "conecta.php";?>
<?php
  /*
	Este exemplo mostra como excluir dados em uma tabela
	MySQL usando um código PHP.
  */
 
  $id = $_GET['id'];// Ou POST, dependendo de onde vem o ID do campo para apagar
  // Comando SQL para excluir os dados em uma tabela  
  $sql = "DELETE FROM dados WHERE id='$id'";
  
  // Executa o comando SQL
  $result = mysql_query($sql);
  
  // Verifica se o comando foi executado com sucesso
  if(!$result)
	die("Falha ao executar o comando: " . mysql_error());
  else
	echo "<span class='news2'>Dados excluídos com sucesso.</span>";
?>
E assim eu entendi a LÓGICA, na linha

$id = $_GET['id'];
Que "pega" o ID para interpreta-lo e manda-lo para o seguinte codigo:

$sql = "DELETE FROM dados WHERE id='$id'";

E o resto vocês já sabem, se eu errei em algum comentário sobre o código peço por favor que me corrijam, pois ainda estou no aprendizado.

 

Agora tenho uma ultima duvida, eu fiz um codigo para na pagina que MOSTRA as informações mostrar o NUMERO em SEQUENCIA (não o numero do ID pois esse sempre irá mudar quando apaga e adiciona algum dado), esse numero SEQUENCIAL é apenas para ORIENTAÇÃO, é um numero FIXO, mas eu fiz isso, da seguinte maneira:

<?php
for ($i=1; $i<17; $i++)
{
echo "\"$i\",";
}
?>
Mas quando eu faço isso ele fica REPETINDO os números, eu queria que ele ENUMERACE de acordo com o numero de cadastro que existe...

 

Exemplo: Eu tenho uma tabela chamada dados que tem os campos ID, TITULO, INFORMAÇÕES, então eu tenho um mínimo de 1 e Maximo de 17 de cadastros nessa tabela para mostrar, mas só tem 15, então ele vai mostrar 1,2,3...até 15 e somente, se apagar alguma informação do banco ela volta para 14, adicionar ela aumenta, naturalmente obedecendo o numero que existe, sem repetições.

 

Desde já agradeço pela ajuda e espero ter contribuído. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uhm, nem tinha reparado :D, enquanto ao seu problema com enumeração, faça o seguinte:

 

<?php

$sql = "SELECT * FROM `teste` WHERE `id` = '$id"";
$counter = mysql_num_rows (mysql_query($sql));

for ($i = 1;$i < $counter;$i++)
echo $i.$id;

?>

É só fazer a mesma coisa com os outros campos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uhm, nem tinha reparado :D, enquanto ao seu problema com enumeração, faça o seguinte:

 

<?php

$sql = "SELECT * FROM `teste` WHERE `id` = '$id"";
$counter = mysql_num_rows (mysql_query($sql));

for ($i = 1;$i < $counter;$i++)
echo $i.$id;

?>

É só fazer a mesma coisa com os outros campos.

Dei uma ageitada no codigo que estava com pequenos erros de digitação, mas mesmo assim não esta funcionando?

Fica ai a correção que eu fiz:

<?php
  $sql = "SELECT * FROM dados WHERE id = '$id'";
$counter = mysql_num_rows (mysql_query($sql));

for ($i = 1;$i < $counter;$i++)
echo $i.$id;
	?>
Na tela mostra os seguintes mensagens de erros:

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO)

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

Um pequeno lembrete, que eu coloquei esse codigo que você me deu dentro da mesma pagina que MOSTRA as INFORMAÇÕES do BANCO, significando que minha conexão com o banco no que se trata de LOGIN, SENHA, BANCO DE DADOS na pagina esta totalmente NORMAL.

 

Desde já agradeço a ajuda. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai já não é comigo, mais se quiser fazer pelo seu método, dá certo tambem:

 

<?php
for ($i = 1;$i <= 17;$i++)
echo $i.$id;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai já não é comigo, mais se quiser fazer pelo seu método, dá certo tambem:

 

<?php
for ($i = 1;$i <= 17;$i++)
echo $i.$id;
?>

Beleza... desde já agradeço pela ajuda, e espero sempre poder ajudar assim como vocês http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.