Não consigo fazer UPDATE no banco mysql com PHP [RESOLVIDO]

1. Não consigo fazer UPDATE no banco mysql com PHP [RESOLVIDO]

Rodrigo
ramega

(usa Ubuntu)

Enviado em 27/10/2011 - 21:47h

E ai galera do VOL, novamente estou aqui para sanar um problema.

É o seguinte, estou criando uma agenda eletrônica para uma aula e não estou conseguindo fazer a alteração de dados no bancode dados MYSQL utilizando o PHP. Abaixo segue o código.

Este é o código grupo.php que possui um link que chama a página para alterar <a href=grupoalt1.php />

<?php
include "conecta.php";

?>
<table border="1">
<form action="gruposins.php" name="incluir" method="POST" >
<tr>
<td>ID</td>
<td>Grupo</td>
<td colspan="2" align="center">A&ccedil;&atilde;o</td>
</tr>
<?php

$sql="SELECT Grupos.grupo_id,Grupos.grupo FROM Grupos ORDER BY grupo_id";
$pega=mysql_query($sql);

while($dados = mysql_fetch_array($pega)){
$grupo_id = $dados["grupo_id"];
$grupo = $dados["grupo"];

echo "<tr>";
echo "<td>$grupo_id</td>";
echo "<td>$grupo</td>";
echo "<td><a href=grupodel.php?id=$grupo_id>Delete</a></td>";
echo "<td><a href=grupoalt1.php?id=$grupo_id>Alterar</a></td>";
echo "</tr>";
}
echo "<tr><td align=center colspan=4><input type=submit name=incluir value=Incluir /></td></tr>";
echo "</form>";
echo "</table>";
?>

Até ai sem problemas, pois ele chama outra página para inserir dados no banco, exclui dados no banco. Abaixo segue o código para alterar os dados:


grupoalt1.php

<html>
<head>
<title></title>
</head>
<body>
<?php
include 'conecta.php';
$id=$_GET['grupo_id'];
$query="SELECT * FROM grupo WHERE grupo_id='".$id."'";
$result = mysql_query($query);
$grupo = $_GET['grupo'];
$grupo_id = $GET['id'];
?>
<form id="cadastro" name="cadastro" method="post" action="grupoalt.php">
<table border="1">
<tr>
<td>Grupo</td>
</tr>
<tr>
<td>
<input name="id" type="text" id="grupo" value="<?php echo $grupo_id; ?>"/>
<input name="grupo" type="text" id="grupo" value="<?php echo $grupo; ?>"/>
</td>
<tr>
<td>
<input type="submit" value="Alterar">
</td>
</tr>
</table>
</form>
</body>
</html>

está página chama outra que é para alterar os dados.

grupoalt.php

<?php

include 'conecta.php';

$grupo_id = $_POST['id'];
$grupo = $_POST['grupo'];
$altera_id = "UPDATE Grupos SET grupo_id='".$id."',grupo='".$grupo."' WHERE Grupos.grupo_id='".$id."'";
$altera = mysql_query($altera_id) or die (mysql_error());

echo "<script>alert('Alterado');</script>";
echo "<script>location.href = 'grupos.php'</script>";

?>

o problema é que não me retorna erro ele me retorne o código javasript, com a mensagem Alterado.


Valeu galera, espero que me ajudem.




  


2. Re: Não consigo fazer UPDATE no banco mysql com PHP [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 27/10/2011 - 23:52h

Veja o tipo de dados do seu grupo_id e grupo, pois se for integer não precisa colocar aspas simples no sql dele.

Dica:
$altera_id = "UPDATE Grupos SET grupo_id='".$id."',grupo='".$grupo."' WHERE Grupos.grupo_id='".$id."'";
$altera = mysql_query($altera_id) or die (mysql_error());

Na dúvida, sempre teste o seu sql, coloque um echo $altera_id após a linha que recebe o sql nela, e veja o conteúdo que sai na tela, pegue esse conteúdo e teste no seu banco de dados, lá ele acusa o erro para você ver onde está o problema.

ABraços


3. Re: Não consigo fazer UPDATE no banco mysql com PHP [RESOLVIDO]

Rodrigo
ramega

(usa Ubuntu)

Enviado em 28/10/2011 - 19:03h

Consegui.

Tive que mudar algumas caoisa para funcionar. O meu UPDATE estava errado e tive que alterar a váriavel o POST do grupo_id para o id, pois o parâmetro que eu estava pegando era o incorreto. Eu chamava no href um parâmetro e no POST estava colocando outro.

$id = $_POST['id'];
$grupo = $_POST['grupo'];
if(mysql_query("UPDATE Grupos SET grupo='$grupo' WHERE grupo_id='$id'"))
{
echo "<script>alert('Alterado');</script>";
echo "<script>location.href = 'grupos.php'</script>";
}else{
echo mysql_error();
}

Grato pelo apoio.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts