erro na exclusão e alteração

1. erro na exclusão e alteração

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 01/04/2008 - 18:00h

Ae galera...
to com problema neste dois scripts da exclusão, e outro de alteração, não acusa nenhum erro de sintaxe, porém na hora de excluir aparece a msg:
Unknown table 'nome' in MULTI DELETE
digito o mesmo nome que foi cadastro no bd.
Veja o script:
<html>
<head>
<title> Exclusão </title>
</head>
<body>
<center>
<form action="excluir.php" method="POST">
<p> Digite um nome que deseja excluir: <input type="text" name='pesqnome' size="20"> <br><br>

<p> <input type="submit" value="Pesquisar" name="enviar">
<input type="hidden" value=1 name="excluir">
</form>
</center>
<?php
if($_POST["excluir"])
{
include "mysqlconecta.php";
$pesqnome = $_POST["pesqnome"];
$sql = "DELETE nome, email, fone FROM pessoa WHERE nome = '$pesqnome'";
$resultado = mysql_query($sql,$conexao) or die(mysql_error());
$linha = mysql_fetch_array($resultado);
if($linha == 1)
{
echo "Nome excluido com sucesso!";
exit;
}
else
{
echo "Nome não encontrado!";
exit;
}

mysql_free_result($resultado) ;
mysql_close($conexao);
}
?>
</body>
</html>

para testar:
http://mundodacomputacao.100webspace.net/excluir.php

para cadastrar: http://mundodacomputacao.100webspace.net/cadastro.php

Aproveitando to com outra dúvida, na parte de alteração.
Vou explicar o que eu quero, é digitado um nome em seguida faz a consulta e mostra os dados no formulário, depois feita alteração dos dados no formulário dae vem o comando UPDATE para atualizar do mesmo, só que que ta dando erro de string no echo, tem outro jeito melhor para fazer?
Para visualizar melhor: http://mundodacomputacao.100webspace.net/alterar.php

Grato pela atenção



  


2. a delete esta errada

João Marcos Menezes
stremer

(usa Arch Linux)

Enviado em 01/04/2008 - 18:15h

Delete não se informa campos, somente a chave.
Troque:
DELETE nome, email, fone FROM pessoa WHERE nome = '$pesqnome'"
para:
DELETE FROM pessoa WHERE nome = '$pesqnome'"


3. Re: erro na exclusão e alteração

Geraldo José Ferreira Chagas Júnior
gjr_rj

(usa Debian)

Enviado em 01/04/2008 - 19:01h

O stremer tem razão, O DELETE está errado. você deleta o registro e não os campos, Logo os campos não são informados.

No caso do campo ou você põe um valor nulo nele, com o UPDATE, caso queira apagar seu conteúdo ou usa o DROP excluir o campo da tabela.


4. Re: erro na exclusão e alteração

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 02/04/2008 - 12:02h

Ok, a parte da exclusão já corrigir o erro!
Agora minha dúvida é na hora de atualizar:
Vou explicar o que eu quero, é digitado um nome em seguida faz a consulta e mostra os dados no formulário, depois feita alteração dos dados no formulário dae vem o comando UPDATE para atualizar do mesmo, só que que ta dando erro de string no echo, tem outro jeito melhor para fazer?
Veja o script
<html>
<head>
<title> Alteração </title>
</head>
<body>
<center>
<form action="alterar.php" method="POST">
<p> Digite um nome que deseja atualizar: <input type="text" name='pesqnome' size="20"> <br><br>

<p> <input type="submit" value="Pesquisar" name="enviar">
<input type="hidden" value=1 name="alterar">
</form>
</center>
<?php
if($_POST["alterar"])
{
include "mysqlconecta.php";
$pesqnome = $_POST["pesqnome"];
//faz a consulta primeiro, para mostrar os dados no formulário para fazer a alteração
$sql = "SELECT nome, email, fone FROM pessoa WHERE nome = '$pesqnome'";
$resultado = mysql_query($sql,$conexao) or die(mysql_error());
$linha = mysql_fetch_array($resultado);
$nome = $linha["nome"];
$email = $linha["email"];
$fone = $linha["fone"];

echo "<html> <head> </head> <body>";
echo "<form action="alterar.php" method="POST">";
echo "Nome: <input type="text" name='nome'value=$nome size="20">
echo "E-mail: <input type="text" name='email'value=$email size="20">
echo "Fone: <input type="text" name='nome'value=$fone size="20">
//echo "</form> </body> </html>";

$sql2 = "UPDATE SET nome=$nome, email=$email, fone=$fone WHERE nome=$nome AND email=$email AND fone=$fone";
$resultado2 = mysql_query($sql2,$conexao) or die("Erro! .mysql_error());
$linhas = mysql_num_rows($result);
if($linhas == 1)
{echo "atualização feita com sucesso!";}
else
{echo "nome não encontrado!";}

mysql_free_result($resultado) ;
mysql_close($conexao);
}
?>
</body>
</html>

Para visualizar melhor: http://mundodacomputacao.100webspace.net/alterar.p...

Grato pela atenção


5. errado novamente

João Marcos Menezes
stremer

(usa Arch Linux)

Enviado em 02/04/2008 - 12:09h

na clausula de atualizacao você especifica a tabela e depois o set dos campos e depois a chave.
UPDATE SET nome=$nome, email=$email, fone=$fone WHERE nome=$nome AND email=$email AND fone=$fone";

Deve ficar (to deduzindo que a tabela é pessoa pelo delete anterior):
UPDATE pessoa SET nome='$nome', email='$email', fone='$fone' WHERE nome='$nome';

OBS: Utilizar o nome com chave pode ser problematico pois é um string e você pode altera-lo e ainda ter 2 nomes na tabela. O correto é criar um número sequencial ID na tabela e passar este como parâmetro no form <input type="hidden" name="id" value="$id"> e então mudar o where para:
where id=$id;

Espero que tenha entendido.
Abs



6. só pra complementar

João Marcos Menezes
stremer

(usa Arch Linux)

Enviado em 02/04/2008 - 12:25h

outra coisa que sua pagina nunca vai funcionar deste jeito. Você precisa primeiro selecionar os registros e montar o form de alteração para depois ao clicar no botão alterar fazer um novo post e efetuar a alteração. Recomendo começar a dividir em arquivos para facilitar a manutenção pq já ta virando o famoso "linguição, espagueti ou qualquer outro nome popular". Isso sem falar em classes que dependendo da versão que tiver usando no php já era recomendado estar usando, pois se o programa for bem estruturado facilita a manutenção e boa estruturação é bom aprender desde o começo.

Abs







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts