tablaDefiniciones ( catop_id int(11) NOT NULL auto_increment, catop_categoria varchar(5) NOT NULL, catop_tipo varchar(5) NOT NULL, catop_label varchar(32) NOT NULL, catop_values text, catop_orden tinyint(4), PRIMARY KEY (catop_id) ) TYPE=MyISAM; CREATE TABLE $this->tablaDefiniciones ( procat_prod_id int(11) NOT NULL default 0, procat_catop_id int(11) NOT NULL default 0, procat_valor text NOT NULL ) TYPE=MyISAM; */ require_once('mysql.class.php'); class catop{ var $miConexion; var $miDBUser; var $miDBPwd; var $miDB; var $categoria; var $tablaDefiniciones; var $tablaDatos; var $numOfCatops; var $curCatop; var $misDatos; // en que casos no paso categoria: // - cuando voy a grabar el resultado del interfaz // - cuando estoy de paso por la zona, vi luz... function catop($categoria = '') { include('catop.config.php'); $this->miDBUser = $gConfig['dbuser']; $this->miDBPwd = $gConfig['dbpass']; $this->miDB = $gConfig['usuarios']; $this->tablaDefiniciones = $gConfig['definicion']; $this->tablaDatos = $gConfig['datos']; $this->categoria = (strlen($categoria) ? $categoria : ''); $this->miConexion = new datosClass($this->miDBUser, $this->miDBPwd, $this->miDB); $this->numOfCatops = -69; $this->curCatop = -69; $this->$misDatos = false; } function readCatops($categoria = '', $producto = ''){ $this->categoria = (strlen($categoria) ? $categoria : this->categoria); if($this->miConexion) { // si me pasan un producto es que estoy mostrando algo previamente grabado // relleno un array con los datos grabados para este producto if(strlen($producto)){ if($this->miConexion->query('SELECT procat_catop, procat_valor FROM ' . $this->$tablaDatos . ' ' WHERE procat_producto=' . $prod_id)) { $this->misDatos = array(); while($miRow = $this->miConexion->getNext()) { // relleno una matriz con los valores que tengo grabados para este producto $dato_tipo = $miRow['procat_catop']; $dato_valor = $miRow['procat_valor']; $this->misDatos[$dato_tipo] = $dato_valor; } } } if($this->miConexion->query('SELECT catop_id as "id", catop_tipo as "tipo", catop_label as "label", catop_values as "values" FROM ' . $this->tablaDefiniciones . ' WHERE catop_categoria="' . $this->categoria . '" ORDER BY catop_orden')) { $this->numOfCatops = $this->miConexion->getNumOfRows(); } } // si -1 algo va mal, si 0 algo va bien pero no hay resultados. return $this->numOfCatops; } // devuelve el array en bruto // notese que los nombres de los campos de la matriz son // id, tipo, label, values, [data] // data solo existe si se ha pasado un codigo de producto en readCatops // y si hay un dato grabado para el producto y la caracteristica correspondiente. function getNextCatop() { $miRow = false; if($this->miConexion) { $miRow = $this->miConexion->getNext(); if($miRow && $this->misDatos) { $miRow['data'] = (is_set($this->misDatos[$miRow['id']]) ? $this->misDatos[$miRow['id']] : ''); } } return $miRow; } // esta funcion depende de las globales $_REQUEST function insertCatops($key) { } } ?>