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: 15 años, 8 meses
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($campo, 0, strlen($campo) -2);
    
$valor = substr($valor, 0, strlen($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.