/** * Calcula el siguiente valor para incrementar el campo de la tabla pasados como parametros. * Si existe la clase contador, se aopya en ella para generar el valor. * @param string $tabla tabla para la que se desea generar el valor * @param string $campo campo para el que se desea generar el valor * @return integer Siguiente valor que se puede grabar en el campo */ public function nextId($tabla,$campo) { $maxCampo=$this->get_var ("SELECT max($campo) as maxCampo FROM $tabla"); $max=$maxCampo+1; if (class_exists('contador')) { /* CREATE TABLE IF NOT EXISTS `contador` ( `id` INT NOT NULL, `insert` TIMESTAMP NULL DEFAULT NULL, `update` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, `tabla` VARCHAR(255) NOT NULL, `campo` VARCHAR(255) NOT NULL, `valor` INT NOT NULL DEFAULT 0, PRIMARY KEY (`id`), UNIQUE INDEX `tablaCampo` (`tabla` ASC, `campo` ASC)) */ $sqlContador="SELECT * FROM contador WHERE tabla='".$tabla."' AND campo='".$campo."'"; $dataContador=$this->get_obj($sqlContador); if ($dataContador) { $contador = new Contador($dataContador->id); if ($contador->GETvalor()>$maxCampo) { $max=($contador->GETvalor())+1; } $contador->SETvalor($max); $contador->grabar(); } } return ($max); }