Comunidad de diseño web y desarrollo en internet online

Ayuda con while

Citar            
MensajeEscrito el 21 Sep 2012 04:49 pm
protected function obtenerResultadoDeConsulta()
{
$this->abrirConexion();
$resultado = $this->conn->query($this->consulta);
while ($this->filas[]=$resultado->fetch_assoc()); //?????????????
$resultado->close();
$this->cerrarConexion();
array_pop($this->filas);
}

quisiera me expliquen el funcionamiento de esa linea:
while ($this->filas[]=$resultado->fetch_assoc());
ya que en la misma linea finaliza con un ;

Por sczonline

1 de clabLevel



Genero:Masculino  

informático

firefox
Citar            
MensajeEscrito el 21 Sep 2012 06:12 pm
while comprueba si la sentencia es verdadera si la es continua,
en esa linea aparte de decirle a while que la sentencia es verdadera se esta asignando o creando un array, con los datos "$resultado->fetch_assoc()" , el punto y coma significa que while no tiene un cuerpo osea no buscara las llaves "{}"

Código PHP :

while ($this->filas[]=$resultado->fetch_assoc());

bueno lo que te digo es como yo lo veo :), puede que haya una explicacion tecnica que alguien te la dara mas adelante :)

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 06:23 pm
gracias por la explicación. Como dices pudiera comprobar tecnicamente con paso a paso, con un debug, pero en PHP es mas complicado que en otro lenguaje.

Por sczonline

1 de clabLevel



Genero:Masculino  

informático

firefox
Citar            
MensajeEscrito el 21 Sep 2012 06:59 pm
bueno en php, hay cosas que se puede simplificar y que son de mucha ayuda , ya te topaste con una de ellas :)

Código PHP :

while ($this->filas[]=$resultado->fetch_assoc());

otra es la de switch

Código PHP :

switch(true)
{
    case is_bool($var): return blabla_bool();break;
    case is_string($var): return blabla_string($var);break
}

bueno en fin ahora lo del while es algo abreviado de lo que realmente tendrias que hacer osea

Código PHP :

$fila = $resultado->fetch_assoc();
$i = 0;
while (!empty($fila))
{
    $this->filas[$i] = $fila;
    $i++;
    $fila = $resultado->fetch_assoc();
}

todos los lenguajes de programacion tienen sus pros y sus contras pero para cada caso hay soluciones interesantes tanto para aligerar carga , usar menos memoria , etc ,

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.