![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
20/05/2008, 18:45
|
| | Fecha de Ingreso: diciembre-2007
Mensajes: 44
Antigüedad: 17 años, 1 mes Puntos: 0 | |
Respuesta: problemas con variables estaticas esto es lo que puse ahora viendo temas similares pero no me funciona cuando llamo al contador desde fuera de la clase, dentro si funciona bien:
este es el codigo en donde funciona bien:
class tablaDinamica{
var $error;
var $esRenderizable; var $contfila;
function tablaDinamica(){
$this->esRenderizable=true;
}
function codigo($contenido){
//declaracion de contador estatico static $contador;
$this->contfila=&$contador;
//DESCOMPRESION Y CHEQUEO DE DATOS
$aData=unserialize(base64_decode($contenido));
if(!isset($aData['conexion'])){
$this->error='No se ha especificado la conexión en el módulo tabla dinámica';
return false;
}
if(!isset($aData['sql'])){
$this->error='No se ha especificado la instrucción sql en el módulo tabla dinámica';
return false;
}
$tc=new tipoConexion();
$aDatosCon=$tc->getConexion($aData['conexion']);
$db=conexionGenerica::nuevaConexion($aDatosCon['tipo'],$aDatosCon['host'],$aDatosCon['username'],$aDatosCon['pass'],$aDatosCon['base']);
if(!$db){
$this->error=$db->error;
return false;
}
$query=$db->query($aData['sql']);
if(!$query){
$this->error=$db->error;
return false;
}
//ARMADO DE LA TABLA
$output[]='<table border="1" cellpadding="3" cellspacing="0">';
$output[]='<thead>';
$output[]='<tr>';
$arrayCampos=$tc->getCampos($aData['conexion'],$aData['sql']);
foreach($arrayCampos as $item){
$output[]='<th align="center">'.$item.'</th>';
}
$output[]='</tr>';
$output[]='</thead>';
while($fila=$db->fetch_assoc($query)){
$output[]='<tr>'; $this->contfila++;
foreach($fila as $item){
if(trim($item)!=''){
$output[]='<td align="center">'.$item.'</td>';
}
else{
$output[]='<td align="center"> </td>';
}
}
$output[]='</tr>'.$this->contfila;
}
$output[]='</table>';
return implode("\r\n",$output);
} y esto es parte de lo que pongo al llamarlo desde otra clase:
function enviarProximo(){ $tabladin=new tablaDinamica();
$i=$this->ultimoEnviado;
/*//datos puestos por PHC para prueba
define('NOMBRE_FICHERO1', 'datos-combinado_3-5_PHC.txt');
$fichero1 = fopen(NOMBRE_FICHERO1, 'a');
$x=0;
foreach ($this->dataDin as $indice){
$ahora=date('Y-m-d H:i:s');
fputs($fichero1, "indice del primer array: $x - Ahora: $ahora \n<br>");
foreach ($indice as $n => $valor){
fputs($fichero1, "dataDin:- indice $n Valor: $valor el count de datadin: ". count($this->dataDin)." el valor de i es:$i\n");
}
$x++;
}
fclose($fichero1);
//fin de datos puestos por PHC*/
if(count($this->dataDin)<=$i){
if($this->simulado){
echo 'Envio Terminado<br><hr>';
}
$this->envio->envioFinalizado($this->idEnvio);
}
if(!isset($this->dataDin[$i])){
return false;
}
$contenido=$this->grupo->combinarDatos($this->plantilla,$this->dataDin[$i]);
if($this->simulado){
echo 'Enviado a: '.$this->dataDin[$i]['email'].'<br>';
echo '<br>';
echo $contenido; echo 'esto es la cantidad de filas:'.$tabladin->contfila;
echo '<hr>';
}
pero no me trae el valor que acumula dentro del primer codigo
perdón si fui confuso al principio!!! |