Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/10/2008, 08:17
hinfra
 
Fecha de Ingreso: octubre-2008
Mensajes: 93
Antigüedad: 15 años, 7 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