Foros del Web » Programando para Internet » PHP »

Problema con UPDATE y formulario

Estas en el tema de Problema con UPDATE y formulario en el foro de PHP en Foros del Web. Saludos, Estoy montando un pequeño sistema para agregar grupos musicales a una base de datos. Todo me funciona perfectamente excepto un par de problemillas... Al ...
  #1 (permalink)  
Antiguo 17/10/2008, 08:17
 
Fecha de Ingreso: octubre-2008
Mensajes: 93
Antigüedad: 15 años, 6 meses
Puntos: 1
Problema con UPDATE y formulario

Saludos,

Estoy montando un pequeño sistema para agregar grupos musicales a una base de datos. Todo me funciona perfectamente excepto un par de problemillas...

Al modificar un grupo, los campos que no se rellenan, es decir que quedan en blanco, se actualizan con la variable en blanco, se machaca el valor anterior por un valor vacío y yo lo que quiero es que se actualizen solo los campos que son modificados.

Este es el codigo:

modificargrupo.php (Formulario)

Código php:
Ver original
  1. <?php
  2.  
  3. include ("header.php");
  4. include ("conectar.php");
  5.  
  6. $id = $_GET['id'];
  7. ?>
  8.  
  9. <form name="form" action="modificargrupo2.php" method="post">
  10. Nombre del grupo:
  11. <input name="nombre" type="text" size="20" /><br/><br/>
  12. Origen:
  13. <input name="origen" type="text" size="20" /><br/><br/>
  14. Estilo:
  15. <input name="estilo" type="text" size="15" /><br/><br/>
  16. Periodo de actividad:
  17. <input name="periodo_actividad" type="text" size="30" /><br/><br/>
  18. Discografica(s):
  19. <input name="discograficas" type="text" size="50" /><br/><br/>
  20. Sitioweb:
  21. <input name="sitioweb" type="text" size="20" /><br/><br/>
  22. Miembros actuales:
  23. <input name="miembros_actuales" type="text" size="100" /><br/><br/>
  24. Miembros antiguos:
  25. <input name="miembros_antiguos" type="text" size="100" /><br/><br/>
  26. Albums:
  27. <input name="albums" type="text" size="100" /><br/><br/>
  28.  
  29. <input type="hidden" name="id" value="<?php echo $id; ?>">
  30. <input name="Enviar" type="submit" value="Enviar" />
  31.  
  32. </form>
  33.  
  34. <?php
  35. include ("footer.php");
  36. ?>

modificargrupo2.php

Código php:
Ver original
  1. <?php
  2.  
  3. include ("header.php");
  4. include ("conectar.php");
  5.  
  6. $db="musicdai";
  7. mysql_select_db($db,$conectar);
  8.  
  9. //Por si el servidor tiene desactivados los register globals----
  10. $nombre=$_POST['nombre'];
  11. $origen=$_POST['origen'];
  12. $estilo=$_POST['estilo'];
  13. $periodo_actividad=$_POST['periodo_actividad'];
  14. $discograficas=$_POST['discograficas'];
  15. $sitioweb=$_POST['sitioweb'];
  16. $miembros_actuales=$_POST['miembros_actuales'];
  17. $antiguos_miembros=$_POST['miembros_antiguos'];
  18. $albums=$_POST['albums'];
  19. $id=$_POST['id'];
  20. //--------------------------------------------------------------
  21.  
  22. $result = mysql_query("update grupos set nombre='$nombre', origen='$origen', estilo='$estilo', periodo_actividad='$periodo_actividad', discograficas='$discograficas', sitioweb='$sitioweb', miembros_actuales='$miembros_actuales', miembros_antiguos='$miembros_antiguos', albums='$albums' where id='$id'", $conectar) or die ("error en update:" .mysql_error());  
  23.  
  24. echo "Actualizando los siguientes datos:";
  25. echo "<br /><br />";
  26. echo "Nombre:$nombre";
  27. echo "<br />";
  28. echo "Origen:$origen";
  29. echo "<br />";
  30. echo "Estilo:$estilo";
  31. echo "<br />";
  32. echo "Periodo de actividad:$periodo_actividad";
  33. echo "<br />";
  34. echo "Discografica(s):$discograficas";
  35. echo "<br />";
  36. echo "Sitio web:$sitioweb";
  37. echo "<br />";
  38. echo "Miembros actuales:$miembros_actuales";
  39. echo "<br />";
  40. echo "Miembros antiguos:$miembros_antiguos";
  41. echo "<br />";
  42. echo "Albums:$albums";
  43. echo "<br /><br />";
  44. ?>
  45.  
  46. <a href="search.php">Volver a buscar</a>
  47.  
  48. <?php
  49. include ("footer.php");
  50. ?>

Seria perfecto que al modificar un registro, apareciera el formulario rellenado con los datos que actualmente tiene este. No se si será muy complicado pero no sé como hacerlo, así no haría falta solucionar el problema de que se actualizen todos los registros. ¿Como hago para que en el formulario modificar los campos se autocompleten con los valores que estos tienen actualmente?

Gracias

Última edición por hinfra; 17/10/2008 a las 08:25
  #2 (permalink)  
Antiguo 17/10/2008, 08:32
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 11 meses
Puntos: 49
Respuesta: Problema con UPDATE y formulario

Que tal hinfra, haz contestado la pregunta, la forma correcta para actualizar en tu caso es esa apartir de un ID via GET o como tu deseas creas el formulario y rescatas cada uno de los valores que posiblemente puedan ser actualizados, ya que como te está pasando tiene mas función de INSERT que de UPDATE obviamente por eso te actualiza campos a valores vacios o nulos:
Código PHP:
<?php
include ("header.php");
include (
"conectar.php");
$id $_GET['id'];
$consulta "SELECT * FROM  grupos WHERE id = '$id'";
$result mysql_query($consulta) or die("Error en consulta:".mysql_error() )
$datos mysql_fetch_array($result);
?>
<form name="form" action="modificargrupo2.php" method="post">
Nombre del grupo:
// En el atributo value colocas el valor de la consulta asi mismo con los otros datos
<input name="nombre" type="text" size="20" value="<?php echo $datos['nombre'];?>" /><br/><br/>
Origen:
<input name="origen" type="text" size="20" value="<?php echo $datos['origen']; ?>" /><br/><br/>
Estilo:
<input name="estilo" type="text" size="15" /><br/><br/>
Periodo de actividad:
<input name="periodo_actividad" type="text" size="30" /><br/><br/>
Discografica(s):
<input name="discograficas" type="text" size="50" /><br/><br/>
Sitioweb:
<input name="sitioweb" type="text" size="20" /><br/><br/>
Miembros actuales:
<input name="miembros_actuales" type="text" size="100" /><br/><br/>
Miembros antiguos:
<input name="miembros_antiguos" type="text" size="100" /><br/><br/>
Albums:
<input name="albums" type="text" size="100" /><br/><br/>
<input type="hidden" name="id" value="<?php echo $id?>">
<input name="Enviar" type="submit" value="Enviar" />
</form>
<?php
include ("footer.php");
?>
Y luego haces el UPDATE con el código que publicas.


Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"

Última edición por Carlojas; 20/10/2008 a las 07:54
  #3 (permalink)  
Antiguo 17/10/2008, 11:03
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Respuesta: Problema con UPDATE y formulario

Hola hinfra, yo hice un minitutorial de como hacer un update con php, te invito a que lo leas a ver si solucionas tu problema y luego me comentas
http://kilometrocero.wordpress.com/2...ql-usando-php/

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #4 (permalink)  
Antiguo 17/10/2008, 12:01
 
Fecha de Ingreso: octubre-2008
Mensajes: 93
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problema con UPDATE y formulario

rogertm tu tutorial es muy útil y está muy bien explicado, pero al mirar el código creo que este sirve para actualizar TODOS los campos de la tabla.

Yo lo que quiero conseguir es que al modificar un registro el formulario esté rellenado con los campos que se introducieron al itroducir el registro y así solo modificar las partes que uno quiera.

Realmente lo que quiero conseguir es algo parecido a la wikipedia (mucho más sencillo, está claro). Cuando un usuario desee editar la información sobre un grupo musical, que este solo haya de editar los cuadros de texto del formulario.

Creo que con la solución de Carlojas podré conseguir algo parecido...

Ahora pruebo y comento el resulatdo.

Gracias
  #5 (permalink)  
Antiguo 17/10/2008, 13:37
 
Fecha de Ingreso: octubre-2008
Mensajes: 93
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problema con UPDATE y formulario

Muchas gracias Carlojas era exactamente lo que necessitaba.
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 04:34.