Foros del Web » Programando para Internet » PHP »

problema al editar base de datos con php

Estas en el tema de problema al editar base de datos con php en el foro de PHP en Foros del Web. Que tal, Estoy haciendo un registro de personas pero quiero que se pueda editar. Primero tengo una pagina.php en donde escojo el ID que se ...
  #1 (permalink)  
Antiguo 17/08/2012, 12:00
 
Fecha de Ingreso: julio-2012
Mensajes: 30
Antigüedad: 11 años, 9 meses
Puntos: 0
problema al editar base de datos con php

Que tal,

Estoy haciendo un registro de personas pero quiero que se pueda editar.

Primero tengo una pagina.php en donde escojo el ID que se va a editar, y me manda a editar.php en donde los campos de texto ya estan cargados con la informacion del ID que solicite.

Todo asta ahi esta correcto y funcionando.

El problema es cuando quiero editarlos.. me sale error tras error y ya me sicle!!

Anexo el codigo por si me pueden ayudar.

Saludos.

Código PHP:
Ver original
  1. <?php
  2. include ("conexion.php");
  3.  
  4. $con = mysql_connect($host,$user,$pw)
  5. or die ("problemas al conectar server");
  6.  
  7. mysql_select_db($db,$con)
  8. or die("problemas al conectar db");
  9.  
  10. $registro=mysql_query("SELECT * FROM codigof2 WHERE id='$_POST[id]'")
  11. or die("problemas en consulta:".mysql_error());
  12.  
  13. while ($reg=mysql_fetch_array($registro)){
  14.  
  15.    
  16. echo '<form>';
  17. echo '<input type="text" name="id" value="'.$reg['id'].'" />';
  18. echo '<input type="text" name="nombre" value="'.$reg['nombre'].'" />';
  19. echo '<input type="text" name="pw" value="'.$reg['pw'].'" />';
  20. echo '</form>';  
  21.     }
  22.    
  23.     mysql_query("update codigof2 set nombre=('nombre') where id=('$id')",$con);
  24.     mysql_query("update codigof2 set pw=('pw') where id=('$id')",$con);
  25.  
  26. ?>
  #2 (permalink)  
Antiguo 17/08/2012, 12:07
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: problema al editar base de datos con php

creo stas confundido


Código PHP:
Ver original
  1. <?php
  2. include ("conexion.php");
  3.  
  4. $con = mysql_connect($host,$user,$pw)
  5. or die ("problemas al conectar server");
  6.  
  7. mysql_select_db($db,$con)
  8. or die("problemas al conectar db");
  9.  
  10. $registro=mysql_query("SELECT * FROM codigof2 WHERE id='$_POST[id]'")
  11. or die("problemas en consulta:".mysql_error());
  12.  
  13. while ($reg=mysql_fetch_array($registro)){
  14.  
  15.    
  16. echo '<form>'; # aqui deberia poner a que php mandaras los datos para que los actualice
  17. #ejemplo
  18.  
  19. #<form action="actualiza.php" method="post">
  20. echo '<input type="text" name="id" value="'.$reg['id'].'" />';
  21. echo '<input type="text" name="nombre" value="'.$reg['nombre'].'" />';
  22. echo '<input type="text" name="pw" value="'.$reg['pw'].'" />';
  23. echo '</form>';  
  24.     }
  25.     /********************************eso deberia ir en el script donde vas a actualizar los datos*******************************************/
  26.     mysql_query("update codigof2 set nombre=('nombre') where id=('$id')",$con);
  27.     mysql_query("update codigof2 set pw=('pw') where id=('$id')",$con);
  28.  
  29. ?>
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #3 (permalink)  
Antiguo 17/08/2012, 12:26
 
Fecha de Ingreso: agosto-2012
Ubicación: En algún lugar de México
Mensajes: 41
Antigüedad: 11 años, 8 meses
Puntos: 16
Respuesta: problema al editar base de datos con php

Hola a simple vista veo que las consultas estan mal, estas quedarían asi:

Código PHP:
 mysql_query("update codigof2 set nombre='".$nombre."' where id=".$id,$con);
 
mysql_query("update codigof2 set pw='".$pw."' where id=".$id,$con);

  
//Si el id es numérico no lleva comillas simples, ademas esas dos consultas las puedes hacer en una sola 

Bueno, pero tu forma de estructurar tu archivo no es bueno, para la mi, la mejor forma de hacer esto sería (con un ejemplo):

Código PHP:
<?php
$id
=$_POST["id"];  //Primero que nada recuperamos el id (indispensable hacer esto)

if (isset($_POST["actualizar"]) { //Verificar que se haya pulsado el boton de actualizar
    
    //Los nombres que le das a las variables deben de ser los mismos en todos las definiciones
     
$nombre=trim($_POST["nombre"]);
     
$apellidos=trim($_POST["apellidos"]);
     
$genero=trim($_POST["genero"]);

      
//Aqui deberias de validar que se hayan llenado correctamente los campos, en  dado caso que los datos esten correctamente haz la actualizacion

    
$SQL="UPDATE ALUMNOS SET NOMBRE='".$nombre."', APELLIDOS='".$apellidos."', GENERO='".$genero."' WHERE ID=".$id;
   
mysql_query($SQL);


}else{  
//En este caso, es cuando se está visitando la página si que se haya pulsado el boton actualizar, lo mas obvio es mostrar los datos originales

$result=mysql_query("SELECT NOMBRE, APELLIDOS, GENERO FROM ALUMNOS WHERE ID=".$id);
$registros=mysql_fecth_array($result,MYSQL_ASSOC);
$nombre=$registros["NOMBRE"];
$apellidos=$registros["APELLIDOS"];
$genero=$registros["GENERO"];

}
?>
//Ak iria el html

Código HTML:
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST">
<input type="hiden" name="id" value="<?php echo $id; ?>">
<input type="text" name="nombre" value="<?php echo $nombre; ?>">
<input type="text" name="apellidos" value="<?php echo $apellidos; ?>">
<input type="text" name="genero" value="<?php echo $genero; ?>">
<input type="submit" name="actualizar">
</form> 
Si te fijas bien, almacene el id en un campo oculta para que cuando pulsemos el boton actualizar no persdamos el valor para la proxima vez que se vuelva a cargar la página

Espero t sirva mi ayuda

Última edición por kale86; 17/08/2012 a las 12:35

Etiquetas: mysql, registro, sql
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 11:52.