Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/08/2011, 15:19
Avatar de kaman10
kaman10
 
Fecha de Ingreso: enero-2011
Ubicación: Uruguay
Mensajes: 63
Antigüedad: 14 años
Puntos: 1
Funcion para actualizar datos de una BD

hola gente
Tengo una funcion de actualizar datos de una bd, el problema esta que quiero modificar varios campos de un registro a la vez pero no me permite solo lo quedo hacer de una por vez.
Ejemplo:
Código PHP:
$objeto->modificar('usuario', array(direccion=>'Juan Perez 123'), ' id = 27'); 
Esta llamada funciona bien y me hace la actualizacion.

Código PHP:
$objeto->modificar('usuario', array(direccion=>'Juan Perez 123''email=>'juan@mail.com'), 'idUsuario 27); 
Esta llamada a la funcion no la ejecuta para estos dos campos.
Si imprimo el array queda asi:

direccion, email = "Juan Perez 123", "[email protected]" por eso no lo actualiza.

Aqui les muestro la funcion para ver que cambios puedo hacerle para que me tome los campos y valores por separado.

Código PHP:
function modificar($tabla ''$c = Array(), $cond '') {
    
// Verifico si hay tabla
         
if ($tabla == ''){
             throw new 
Exception('Definir tabla en: modificar([tabla],...)');
             return 
false;
        }
         
$campo '';
         
$valor '';
         
$sqls 'UPDATE '.$tabla.'SET {!CAMPOS = !VALORES}'.' WHERE'.$cond;// aca esta el dilema creo    
    
    
foreach($c as $k => $v) {
        
$campo .= $k.', '
        
$valor .= '"'.$v.'", '
    }

    
$campo substr($campo0strlen($campo) -2);
    
$valor substr($valor0strlen($valor) -2);
    
    
$sqls str_replace('{!CAMPOS'$campo$sqls);
    
$sqls str_replace('!VALORES}'$valor$sqls);

    
$res mysql_query($sqls); 

Última edición por kaman10; 21/08/2011 a las 15:22 Razón: Siempre reviso para que todo este bien y no tenga errores, y para que la respuesta sea la que estoy consultando.