Ir para conteúdo

POWERED BY:

Arquivado

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

manogaucho

[Resolvido] Erro ao Alterar (UPDATE ) da Tabela

Recommended Posts

Oi tudo bem!

 

Criei uma sistema para excluir ou alterar produtos de uma tabela.

o Excluir funciona.

Mas alterar não, a pagina carregar os dados, mas quando altero vai para mensagem de erro, que inserir no sistema.

or die ("Erro ao alterar Produto.");

 

Vamos la então.Vou colocar minhas paginas abaixo.

 

controle.php


<?php

include ('conexao.php');



$sql = "SELECT 
		* 
	FROM 
		SS_categories
	ORDER BY 
		name";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta.");

?>

<table align="center" border="2" bordercolor="#000000">

<tr>
   <th bgcolor="#FFFFCC">Nome Produto:</th>
   <th>Quantidade:</th>
   <th bgcolor="#FFFFCC">Opções</th>
</tr>

<?php


while ($linha = mysql_fetch_array($resultado, MYSQL_ASSOC))
{


echo "<tr>";
echo "<td>{$linha['name']}</td>";
echo "<td>{$linha['description']}</td>";
   echo "<td><a href='alterar.php?categoryID={$linha['categoryID']}'>Alterar</a> / ";
echo "<a href='excluir.php?categoryID={$linha['categoryID']}'>Excluir</a></td>";
echo "</tr>";
}

echo "</table>";

?>



 

alterar.php

<?php

include ('conexao.php');


$sql = "SELECT 
	* 
FROM 
	SS_categories
WHERE 
	categoryID = ".(int)$_GET['categoryID'];
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta.");

$linha = mysql_fetch_array($resultado, MYSQL_ASSOC);

?>

<h1>Alterar Produto</h1>
<form action="alterar_db.php?categoryID=<?php echo $_GET['categoryID'] ?>" method="post">

<label for="nome"></label>
<table width="800" align="center">
     <tr>
       <td align="right" valign="top"> </td>
       <td>  </td>
     </tr>
     <tr>
       <td align="right" valign="top">Nome Produto: </td>
       <td><input name="name" id="name1" type="text" 
value="<?php echo $linha['name'] ?>" />
       </td>
     </tr>
     <tr>
       <td align="right" valign="top">Quantidade:</td>
       <td><input name="description" id="description1" type="text" 
value="<?php echo $linha['description'] ?>" />
       </td>
     </tr>
   </table>
<input type="submit" value="Alterar" />


</form>

 

alterar_db.php


<?php

include ('conexao.php');

$sql = "UPDATE 
	SS_categories 
SET 
	name='".mysql_real_escape_string($_POST['name'])."', 
	description='".mysql_real_escape_string($_POST['description'])."', 
WHERE 
    categoryID = ".(int)$_GET['categoryID'];

$resultado = mysql_query($sql)
or die ("Erro ao alterar Produto.");

?>

<h1>Produto foi alterado com sucesso!</h1>

 

excluir.php


<?php

include ('conexao.php');


$sql = "DELETE FROM 
	SS_categories
WHERE 
	categoryID = ".(int)$_GET['categoryID'];

$resultado = mysql_query($sql)
or die ("Erro ao remover notícia.");

?>

<h1>O Produto foi excluído!</h

 

Demais Obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca essas mensagens tratadas, pelo erro real:

 

or die ("Erro ao alterar Produto.");

por:

or die ( mysql_error() );

 

assim vai retornar o motivo de ter falhado, e será possível corrigir.

Entenda oque retornar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca essas mensagens tratadas, pelo erro real:

 

or die ("Erro ao alterar Produto.");

por:

or die ( mysql_error() );

 

assim vai retornar o motivo de ter falhado, e será possível corrigir.

Entenda oque retornar.

 

Ok, alterei e o erro foi:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE categoryID = 67' at line 6

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca assim:

or die("Erro ao alterar produto: " .mysql_error());

 

Mas de acordo com o erro citado por tu, acredito que pode ser:

$sql = mysql_query("DELETE FROM SS_categories WHERE categoryID='".$_GET[categoryID]."'");

ou seja, vai deletar o ID que esta passando pelo GET.

 

Recomendo que sempre fecha a conexão após fazer uma consulta (sei lá, pra evitar que dá algum bug, nunca se sabe), exemplo:

mysql_close($variavel)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca assim:

or die("Erro ao alterar produto: " .mysql_error());

 

Mas de acordo com o erro citado por tu, acredito que pode ser:

$sql = mysql_query("DELETE FROM SS_categories WHERE categoryID='".$_GET[categoryID]."'");

ou seja, vai deletar o ID que esta passando pelo GET.

 

Recomendo que sempre fecha a conexão após fazer uma consulta (sei lá, pra evitar que dá algum bug, nunca se sabe), exemplo:

mysql_close($variavel)

 

Não alterou ele apagou o dado preenchido!

 

Achei o erro:

 


<?php

include ('conexao.php');

$sql = "UPDATE 
	SS_categories 
SET 
	name='".mysql_real_escape_string($_POST['name'])."', 
	description='".mysql_real_escape_string($_POST['description'])."', // mudei aqui tirei a virgula
WHERE 
    categoryID = ".(int)$_GET['categoryID'];

$resultado = mysql_query($sql)
or die("Erro ao alterar produto: " .mysql_error());

?>

<h1>Produto foi alterado com sucesso!</h1>
<?php

 

Ficou assim:


<?php

include ('conexao.php');

$sql = "UPDATE 
	SS_categories 
SET 
	name='".mysql_real_escape_string($_POST['name'])."', 
	description='".mysql_real_escape_string($_POST['description'])."' //ficou assim
WHERE 
    categoryID = ".(int)$_GET['categoryID'];

$resultado = mysql_query($sql)
or die("Erro ao alterar produto: " .mysql_error());

?>

<h1>Produto foi alterado com sucesso!</h1>
<?php

 

Agradeço desde ja aajuda de todos!!!

 

Topico encerrado!!!

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.