Ver Mensaje Individual
  #7 (permalink)  
Antiguo 10/12/2007, 13:20
Keysher
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: Modificar un campo de la base de datos

Umm, te falta comprobar que no estén vacios (en el ejemplo no puse los if)

Código PHP:
<?php 
$link 
mysql_connect("localhost","usuario","pass"); 
mysql_select_db("bd",$link); 
 
$query "UPDATE table SET "

if (!empty(
$_POST['nombre'])
     
$query .= "nombre='".$_POST['nombre']."' "

if (!empty(
$_POST['telefono'])
     
$query .= "telefono='".$_POST['telefono']."' "
 
$query .= "WHERE table.id=".$_POST['id'];  
 
$my_error mysql_error($link); 
 
if(!empty(
$my_error)) { 
 
echo 
"Ha habido un error al insertar los valores. $my_error";  
 
} else { 
 
echo 
"Datos modificados correctamente"
             
}
?>
Además también te falta hacer el query, el típico mysql_query($query)

Y ten en cuenta que esto daría error si ambos campos están en blanco.

Una solución algo rápida sería incrementar un contador cada vez que pille un campo que no esté en blanco y luego comprobar que el contador sea mayor que cero.

Todo juntito:

Código PHP:
<?php 
$link 
mysql_connect("localhost","usuario","pass"); 
mysql_select_db("bd",$link); 
 
$contador 0;
$query "UPDATE table SET "

if (!empty(
$_POST['nombre']) {
     
$query .= "nombre='".$_POST['nombre']."' "
     
$contador++;
}

if (!empty(
$_POST['telefono']) {
     
$query .= "telefono='".$_POST['telefono']."' "
     
$contador++;
}

$query .= "WHERE table.id=".$_POST['id'];  

if (
$contador >0) {
     
$id_query mysql_query($query);
 
     
$my_error mysql_error($link); 
 
     if(!empty(
$my_error)) { 
 
          echo 
"Ha habido un error al insertar los valores. $my_error";  
 
     } else { 
 
         echo 
"Datos modificados correctamente"
             
    }
}
?>
OJO!! Es un código pensado rápido y sin comprobaciones, puede haber fallos (graves) y no ser la manera más correcta, pero es lo que se me ha ocurrido!