Foros del Web » Programando para Internet » PHP »

No me actualiza los datos...

Estas en el tema de No me actualiza los datos... en el foro de PHP en Foros del Web. Bueno el problema que tengo en estos momentos es el siguiente...tengo un codigo el cual me muestra los datos de una bd...pero el problema que ...
  #1 (permalink)  
Antiguo 19/12/2007, 16:17
Avatar de ca3s0n  
Fecha de Ingreso: junio-2007
Mensajes: 13
Antigüedad: 16 años, 10 meses
Puntos: 0
No me actualiza los datos...

Bueno el problema que tengo en estos momentos es el siguiente...tengo un codigo el cual me muestra los datos de una bd...pero el problema que tengo es que a la hora de kerer modificar los datos no me funciona...espero que me puedan ayudar a solucionar el problema..

de ante mano muchas gracias y unas felices fiestas para todos ustedes

a continuación les dejo el código que estoy utilizando...

actualizar2.php
//---------------------------------------------------------------------------------------------------

<?
if (!($conexion = mysql_connect("localhost","user","pass")))
{die("No se puede conectar");}

if (!mysql_select_db("base datos"))
{die("no se puede seleccionar la base de datos");}

$query = "SELECT * FROM noticia ORDER BY id"; # ID es el identificador o llave de los alumnos puesto que solo debe haber un alumno con los mismos datos (esto es cuestion de BDatos))
$result = mysql_query($query) or die(mysql_error());
while($fetch = mysql_fetch_assoc($result)){
echo "<br> <table align='center' border='0' width='450'> <tr> <td> Titulo: " . "\n" . $fetch['nombre'] . "</td> </tr>" . "<tr> <td align='right'>" . "<a href=\"modi.php?id=".$fetch['id']."\">Modificar datos</a> </td> </tr> </table>";

}
?>



modi.php
//----------------------------------------------------------------------------------------------------

<?
if (!($conexion = mysql_connect("localhost","user","pass")))
{die("No se puede conectar");}
if (!mysql_select_db("base datos"))
{die("no se puede seleccionar la base de datos");}
$querya = "SELECT * FROM noticia WHERE (id='".$id."')";
$resulta= mysql_query($querya) or die(mysql_error());
list($id,$nombre,$direccion,$sexo) = mysql_fetch_row($resulta);
echo "<form name='modificaralumnos' action='actualizar.php' method='post'>"
."Nombre: <input type='text' name='nombre' value='".$nombre."'><br>"
."Fecha: <input type='text' name='fecha' value='".$fecha."'><br>"
."<input type='submit' name='btn_modi' value='Modificar'>"
."</form>"
?>


actualizar.php
//----------------------------------------------------------------------------------------------------

<?
//Conexion con la base
mysql_connect("localhost","user","pass");
if (!mysql_select_db("base datos"))
{die("no se puede seleccionar la base de datos");}
//Creamos la sentencia SQL y la ejecutamos
$SQL="Update noticia Set nombre='$nombre', fecha='$fecha' WHERE (id='".$id."')";
mysql_db_query("ganadofrima_cl_bdfrima",$SQL);
echo "Los cambios fueron realizados exitosamente";
?>


espero que me puedan ayudar...
  #2 (permalink)  
Antiguo 19/12/2007, 16:23
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: No me actualiza los datos...

antes de modificar podrias imprimir todas tus variables para ver si estan llegando sobre todo el id que deberia enviarse por POST en el caso del WHERE que no lo veo...
bueno prueba

Código PHP:
<?php
mysql_query
(" UPDATE noticia SET nombre = '$_POST[nombre]', fecha = '$_POST[fecha]'"
          
." WHERE id= '$_POST[id]'") or die ("Error ".mysql_error());

//....
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 19/12/2007, 16:28
Avatar de ca3s0n  
Fecha de Ingreso: junio-2007
Mensajes: 13
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: No me actualiza los datos...

provee lo que me dejaste y todavía no me realiza los cambios...
  #4 (permalink)  
Antiguo 19/12/2007, 16:33
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: No me actualiza los datos...

Edita esta linea

Código PHP:
$querya "SELECT * FROM noticia WHERE (id='".$id."')"
Por esto

Código PHP:
$querya "SELECT * FROM noticia WHERE id = ' " $_GET['id']. " ' "
Lo mismo en el Update de actualizar

Saludos.
  #5 (permalink)  
Antiguo 19/12/2007, 17:27
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: No me actualiza los datos...

sep tiene razon Carlojas pero nunca podras actualizar ya que me di cuenta que no esta spasando el id :/ debes pasarlo oculto, por ejemplo en primer lugar pasas el ID como GET

<a href=\"modi.php?id=".$fetch['id']."\">Modificar datos</a>

hasta aqui bien luego hacer lo que te propusieron arriba....

Código PHP:
//en tu select pones 
$querya "SELECT * FROM noticia WHERE id = '$_GET['id']' "
//no es necesario tanta comilla 
ya luego la rescatas necesitas pasarla en tu formulario


Código PHP:
echo "<form name='modificaralumnos' action='actualizar.php' method='post'>",
.
"Nombre: <input type=\"text\" name=\"nombre\" value=\"$nombre\"><br>",
.
"Fecha: <input type=\"text\" name=\"fecha\" value=\"$fecha\"><br>",
.
"<input type=\"hidden\" name=\"id\" value=\"$_GET[id]\">",
.
"<input type='submit' name='btn_modi' value='Modificar'>",
.
"</form>"
y aya luego lo actualizas con lo que te di por POST.

como dije imprime tus variables antes para saber si estan llegando o no antes de actualizar
__________________
Gokuh Salvo al mundo. PUNTO!!!!

Última edición por kaninox; 20/12/2007 a las 09:41
  #6 (permalink)  
Antiguo 19/12/2007, 19:26
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: No me actualiza los datos...

Es cierto lo que dice kaninox, prueba agregando a tu formulario un campo oculto que contenga el id:

Código PHP:
."<input type='hidden' name='id' value='$id'>" 
Ahora, es mejor que en tu página actualizar.php llames a tus variables del form como $_POST['variable'] en vez de $variable. No te imaginas cuantos problemas de seguridad sobretodo trae usar la segunda manera.

Un saludo,
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 19:19.