Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/04/2011, 05:42
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: UPDATE sin datos

Hay dos formas de resolverlo:
1) En PHP verificas si la variable contiene o no algo, y de acuerdo a eso le vas agregando las partes del UPDATE a actualizar. Eso es crear la sentencia dinámicamente, y es la mejor de las soluciones.
Código PHP:
$sql "UPDATE entrada SET ";
if(
$_POST[Apellido]!="")
    { 
$sql .= "Surname = '$_POST[Apellido]' ,"}
if(
$_POST[DNI]!="")
    { 
$sql .= "DNI= '$_POST[DNI]' ,"}
if(
$_POST[Name ]!="")
    { 
$sql .= "Name = '$_POST[Nombre]' ,"}
mysql_query($sql$link); 
2) En la sentencia, debes usar funciones para verificar que no estés alterando el contenido que ya existe. El problema es que hacer que funcione bien implica crear una consulta muy complicada.
Código MySQL:
Ver original
  1. UPDATE entrada SET Surname = IF( '$_POST[Apellido]'  = '', Surname, '$_POST[Apellido]'),
  2. IF( '$_POST[DNI]'  = '', Surname, '$_POST[DNI]'),
  3. IF( '$_POST[Name]'  = '', Surname, '$_POST[Nombre]');
Este ejemplo no abarca todas las condiciones posibles.

Consejo: No uses en el nombre de los campos, tablas o bases de datos nombres en inglés, en tanto sea posible. Es muy probable que termines poniendo nombres que son palabras reservadas en SQL, y eso te generará errores de sintaxis indetectables.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 28/04/2011 a las 06:16