Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

PHP OO active table y claves foraneas

Estas en el tema de active table y claves foraneas en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas, me hice un mini active table (siguiente el ejemplo del blog de gatorV), pero estoy teniendo problemas cuando la tabla tiene mas de una ...
  #1 (permalink)  
Antiguo 16/08/2012, 18:07
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
active table y claves foraneas

Buenas,
me hice un mini active table (siguiente el ejemplo del blog de gatorV), pero estoy teniendo problemas cuando la tabla tiene mas de una clave primaria.
Yo tengo un método que setea los campos de la tabla con los datos que se le pasan:
Código PHP:
Ver original
  1. public function setearCampos($data) {
  2.         $this->debug->info($this->fields);
  3.         $this->debug->log($data);
  4.         //Recorro el arreglo y lo asigno a los campos del registro
  5.         foreach ($data as $key => $value) {
  6.             //valido si existe la clave en el arreglo de los campos y lo asigno al campo
  7.             if (array_key_exists($key, $this->fields)) {
  8.                 $this->fields[$key] = htmlentities(stripslashes($value));
  9.             }
  10.             //valido si existe la clave primaria en el arreglo si no existe la seteo en vacio.
  11.             if (!array_key_exists($this->keyField, $data)) {
  12.                 $this->fields[$this->keyField] = '';
  13.             }
  14.         }
  15.  
  16.         //cambio el estado de la bandera seteados
  17.         $this->seteados = 1;
  18.     }
Despues tengo un método guardar que lo que hace es validar si viene un id o no si viene guarda los datos y sino los actualiza.
El problema lo tengo cuando hay una tabla asi:
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `core_log_accesos` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `username` int(11) NOT NULL,
  4.   `fecha` datetime DEFAULT NULL,
  5.   `ip` varchar(100) DEFAULT NULL,
  6.   PRIMARY KEY (`id`,`username`),
  7.   KEY `fk_core_log_accesos_core_users1` (`username`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

mi código no logra determinar por cual clave primaria validar.
Hay forma de solucionar esto?
Desde ya muchas gracias!

Etiquetas: claves, table, foreignkey
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:36.