Ver Mensaje Individual
  #8 (permalink)  
Antiguo 19/01/2011, 02:58
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: UPDATE campo individual desde un formulario

Cita:
Iniciado por opzina
Se actualiza el campo que modifique en el formulario, pero se resetea o borra todo los otros campos. Es como que toma un update Global.
Ok, aqui el problema es que no estas siguiendo el procedimiento adecuado... que es:

1- Tomar la ID del registro a modificar... ya lo estas haciendo con $ID = $_POST['id'];
2- Verificar que el registro realmente existe: SELECT * FROM tabla WHERE id = $ID, ver si hay resultados con mysql_num_rows() y, si existe, el correspondiente mysql_fetch_assoc()
3- Asignar los valores del formulario desde la lectura del registro ejemplo: $titulo = $row['titulo'];
4- Ver que es lo que obtienes en $_POST:
Código PHP:
Ver original
  1. // Creas una matriz para la consulta
  2. $query = array();
  3.  
  4. // Para cada campo, revisas si se modifico o si esta vacio:
  5. if($_POST['titulo'] != '' && $_POST['titulo'] != $titulo) {
  6.     $titulo = mysql_real_escape_string($_POST['titulo']);
  7.     $query[] = "titulo = '$titulo'";
  8. }
  9.  
  10. // En el caso de los archivos, es parecido:
  11. if($_FILES['img_thumb']['name'] != '') {
  12.     // Primero mueves el archivo:
  13.     $move = move_uploaded_file(bla bla bla);
  14.     if(!$move) {
  15.         // Hubo un error... que vas a hacer aqui?, no se debe modificar el registro
  16.         // Finalizas con die, exit, regresas al formulario o lo que prefieras
  17.     }
  18.     $query[] = "img_thumb = 'ruta/{$_FILES['img_thumb']['name']}'";
  19. }
  20.  
  21. // Hubo cambios?
  22. if(count($query) > 0) {
  23.     // Si, hay que actualizar el registro
  24.     $query = "UPDATE tabla SET " . implode(', ', $query) . " WHERE id = $ID";
  25.     mysql_query($query) or die("Error en la consulta:<br />$query<br />" . mysql_error());
  26.     // Rediriges a otra pagina, das un mensaje o lo que quieras... aqui acaba todo
  27. }
__________________
- León, Guanajuato
- GV-Foto