Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problema al hacer UPDATE

Estas en el tema de Problema al hacer UPDATE en el foro de Bases de Datos General en Foros del Web. Buenas estoy haciendo un backend para mi site, ya sé que podría hacerlo con un CMS, pero es la manera más fácil de aprender. Al ...
  #1 (permalink)  
Antiguo 05/01/2011, 20:57
 
Fecha de Ingreso: agosto-2010
Ubicación: Barcelona
Mensajes: 22
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Problema al hacer UPDATE

Buenas estoy haciendo un backend para mi site, ya sé que podría hacerlo con un CMS, pero es la manera más fácil de aprender.

Al grano, en la seccion de modificar registros, me recoge bien todo, no me da error, pero no me actualiza.

Puse un -> echo "<hr>$sql<hr>"; para ver que pasa, y me doy cuenta que las variables me llegan vacias.

El código es:


codigo donde selecciono el registro a modificar:
Código PHP:
<?php

//incloim les dades del svr
include('config.php');

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
?>


<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td>
<table width="400" border="1" cellspacing="0" cellpadding="3">
<tr>
<td colspan="4"><strong>List data from mysql </strong> </td>
</tr>

<tr>
<td align="center"><strong>Username</strong></td>
<td align="center"><strong>Password</strong></td>
<td align="center"><strong>Actualitzar</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td><? echo $rows['username']; ?></td>
<td><? echo $rows['password']; ?></td>

<!-- link to update.php and send value of id-->
<td align="center"><a href="update.php?id=<? echo $rows['id']; ?>">Actualitzar</a></td>
</tr>
<?php
}
?>
</table>
</td>
</tr>
</table>
<?php
mysql_close
();
?>
--------------

pagina donde puedo modificar los datos:
Código PHP:
<?php

//incloim les dades del svr
include('config.php');

// get value of id that sent from address bar
$id=$_GET['id'];


// Retrieve data from database
$sql="SELECT * FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);

$rows=mysql_fetch_array($result);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<form name="form1" method="post" action="update_ac.php">
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td>&nbsp;</td>
<td colspan="3"><strong>Update data in mysql</strong> </td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center">&nbsp;</td>
<td align="center">&nbsp;</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center"><strong>User</strong></td>
<td align="center"><strong>Pass</strong></td>
</tr>
<tr>
<td>&nbsp;</td>
<td align="center"><input name="usuario" type="text" id="usuario" value="<? echo $rows['username']; ?>"></td>
<td align="center"><input name="codigo" type="text" id="codigo" value="<? echo $rows['password']; ?>" size="15"></td>

</tr>
<tr>
<td>&nbsp;</td>
<td><input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>"></td>
<td align="center"><input type="submit" name="Submit" value="Submit"></td>

</tr>
</table>
</td>
</form>
</tr>
</table>

<?

// close connection
mysql_close();

?>
-----------------

pagina que me updata los cambios:
Código PHP:
<?php

//incloim les dades del svr
include('config.php');

// update data in mysql database
$sql="UPDATE $tbl_name SET usuario='$username', codigo='$password' WHERE id='$id'";
$result=mysql_query($sql);
echo 
"<hr>$sql<hr>";
// if successfully updated.
if($result){
echo 
"Successful";
echo 
"<BR>";
echo 
"<a href='list_records.php'>View result</a>";
}

else {
echo 
"ERROR";
}

?>
He buscado por Google, he probado mil cosas pero no encuentro la solución. Ofuscado ya os pido ayuda, a ver si alguien lo ve.

Gracias, Christian
  #2 (permalink)  
Antiguo 05/01/2011, 22:13
 
Fecha de Ingreso: enero-2011
Ubicación: México, Mérida
Mensajes: 8
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problema al hacer UPDATE

Por lo que veo en la página donde actualizas en la base de datos, no estas recibiendo tus variables por $_POST ni estas declarando las variables $username y $password.

Trata de poner esto en tu pagina update_ac.php

Código PHP:
<?php 

//incloim les dades del svr 
include('config.php'); 

//esto es lo que te falta
$username=$_POST['usuario'];
$password=$_POST['codigo'];

// update data in mysql database 
$sql="UPDATE $tbl_name SET usuario='$username', codigo='$password' WHERE id='$id'"
$result=mysql_query($sql); 
echo 
"<hr>$sql<hr>"
// if successfully updated. 
if($result){ 
echo 
"Successful"
echo 
"<BR>"
echo 
"<a href='list_records.php'>View result</a>"


else { 
echo 
"ERROR"


?>
con eso debe funcionar
  #3 (permalink)  
Antiguo 06/01/2011, 05:43
 
Fecha de Ingreso: agosto-2010
Ubicación: Barcelona
Mensajes: 22
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema al hacer UPDATE

Gracias, robertopachecorio, lo he probado, pero me daba la id vacia, así que le puse tb el parámetro para que trajera el valor y lo trae pero me da error.

Código PHP:
<?php

//incloim les dades del svr
include('config.php');
//esto es lo que te falta
$id=$_POST['id'];
$username=$_POST['usuario'];
$password=$_POST['codigo']; 
// update data in mysql database
$sql="UPDATE $tbl_name SET usuario='$username', codigo='$password' WHERE id='$id'";
$result=mysql_query($sql);
echo 
"<hr>$sql<hr>";
// if successfully updated.
if($result){
echo 
"Successful";
echo 
"<BR>";
echo 
"<a href='list_records.php'>View result</a>";
}

else {
echo 
"ERROR";
}

?>

Me dice esto:
UPDATE members SET usuario='magda', codigo='2db313fabca57504d9dc776e46b304f6' WHERE id='12'

ERROR


Y evidentemente, no updata.

No lo entiendo.
  #4 (permalink)  
Antiguo 06/01/2011, 12:06
 
Fecha de Ingreso: enero-2011
Ubicación: México, Mérida
Mensajes: 8
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problema al hacer UPDATE

Al parecer es un problema de mySQL, checa tus campos de tu tabla para ver que sean correctos con los valores que quieres actualizar.
tambien pon" or die(mysql_error());" despues de hacer el mysql_query---ejemplo-->
Código PHP:
$sql="UPDATE $tbl_name SET usuario='$username', codigo='$password' WHERE id='$id'";
$result=mysql_query($sql) or die(mysql_error()); 
De esa manera ya sabrás cual es tu error y asi podrás corregirlo
Cita:
Iniciado por truchito Ver Mensaje
Gracias, robertopachecorio, lo he probado, pero me daba la id vacia, así que le puse tb el parámetro para que trajera el valor y lo trae pero me da error.

Código PHP:
<?php

//incloim les dades del svr
include('config.php');
//esto es lo que te falta
$id=$_POST['id'];
$username=$_POST['usuario'];
$password=$_POST['codigo']; 
// update data in mysql database
$sql="UPDATE $tbl_name SET usuario='$username', codigo='$password' WHERE id='$id'";
$result=mysql_query($sql);
echo 
"<hr>$sql<hr>";
// if successfully updated.
if($result){
echo 
"Successful";
echo 
"<BR>";
echo 
"<a href='list_records.php'>View result</a>";
}

else {
echo 
"ERROR";
}

?>

Me dice esto:
UPDATE members SET usuario='magda', codigo='2db313fabca57504d9dc776e46b304f6' WHERE id='12'

ERROR


Y evidentemente, no updata.

No lo entiendo.
  #5 (permalink)  
Antiguo 06/01/2011, 12:46
 
Fecha de Ingreso: agosto-2010
Ubicación: Barcelona
Mensajes: 22
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema al hacer UPDATE

Gracias, en breve cuando llegue a casa lo pruebo y te comento.

Christian
  #6 (permalink)  
Antiguo 06/01/2011, 15:04
 
Fecha de Ingreso: agosto-2010
Ubicación: Barcelona
Mensajes: 22
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema al hacer UPDATE

Resuelto robertopachecorio, gracias, el error era que los campos les cambie el nombre en el php, sin querer, dios que cabeza, jejejejj

Ahora a por el ISSET, jajajajaja

gracias robertopachecorio

Etiquetas: update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:19.