Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas Santos Brito

Utilizar dados obtidos fora do laço

Recommended Posts

Nobres, boa tarde!

Sou iniciante e me deparei com um problema de lógica, existe alguma forma de capturar os dados obtidos através de um laço (while) e utilizá-los fora do laço, transformando-o em um array ou algo do tipo?

Já tentei o 'array_fill', o problema é que o vetor é preenchido sempre com o mesmos dados (um sobrepõe o outro).

Se alguém poder me ajudar nessa ai, agradeço! Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

Não funcionou, o loop continua sobrepondo os valores da array, segue código abaixo:

/* Array responsável pelo armazenamento das fotos */
public $foto = array();

public function ObterFotos($id_usuario){
            $Fquery = $this->Conexao->prepare("SELECT * FROM foto_usuario INNER JOIN usuario ON id_usuario = :id ORDER BY foto_usuario.id");
            $Fquery->execute(array(':id' => $id_usuario));
            while($result = $Fquery->fetch(PDO::FETCH_ASSOC)){
                $this->foto = array_fill(0, 6, $result['nome']);
            }
            var_dump($this->foto);
}
E olha o resultado do var_dump:

 

array (size=6)

0 => string 'a0e2ffc7fdd590729c5e185bfa6484d8.jpg' (length=36)

1 => string 'a0e2ffc7fdd590729c5e185bfa6484d8.jpg' (length=36)

2 => string 'a0e2ffc7fdd590729c5e185bfa6484d8.jpg' (length=36)

3 => string 'a0e2ffc7fdd590729c5e185bfa6484d8.jpg' (length=36)

4 => string 'a0e2ffc7fdd590729c5e185bfa6484d8.jpg' (length=36)

5 => string 'a0e2ffc7fdd590729c5e185bfa6484d8.jpg' (length=36)

 

Agradeço desde já o apoio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não entendeu o que o Beraldo disse.

 

public function ObterFotos($id_usuario){
            $Fquery = $this->Conexao->prepare("SELECT * FROM foto_usuario INNER JOIN usuario ON id_usuario = :id ORDER BY foto_usuario.id");
            $Fquery->execute(array(':id' => $id_usuario));

            $arr = Array();
            while($result = $Fquery->fetch(PDO::FETCH_ASSOC)){
                $arr[] = array_fill(0, 6, $result['nome']);
            }
            var_dump($arr);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

Obrigado.

Mas desta forma ainda não era bem o que eu queria, pois a array retorna em formato multidimensional:

var_dump:
array (size=5)
0 =>
array (size=6)
0 => string 'a8a577ef64dc85ba53d742bd01262f21.jpg' (length=36)
1 => string 'a8a577ef64dc85ba53d742bd01262f21.jpg' (length=36)
2 => string 'a8a577ef64dc85ba53d742bd01262f21.jpg' (length=36)
3 => string 'a8a577ef64dc85ba53d742bd01262f21.jpg' (length=36)
4 => string 'a8a577ef64dc85ba53d742bd01262f21.jpg' (length=36)
5 => string 'a8a577ef64dc85ba53d742bd01262f21.jpg' (length=36)
1 =>
array (size=6)
0 => string '2db22b323d11ce62574f12a27cdf405a.jpg' (length=36)
1 => string '2db22b323d11ce62574f12a27cdf405a.jpg' (length=36)
2 => string '2db22b323d11ce62574f12a27cdf405a.jpg' (length=36)
3 => string '2db22b323d11ce62574f12a27cdf405a.jpg' (length=36)
4 => string '2db22b323d11ce62574f12a27cdf405a.jpg' (length=36)
5 => string '2db22b323d11ce62574f12a27cdf405a.jpg' (length=36)
2 =>
array (size=6)
0 => string '22133791f4294b8b3f5590091255f677.jpg' (length=36)
1 => string '22133791f4294b8b3f5590091255f677.jpg' (length=36)
2 => string '22133791f4294b8b3f5590091255f677.jpg' (length=36)
3 => string '22133791f4294b8b3f5590091255f677.jpg' (length=36)
4 => string '22133791f4294b8b3f5590091255f677.jpg' (length=36)
5 => string '22133791f4294b8b3f5590091255f677.jpg' (length=36)
3 =>
array (size=6)
0 => string '72a221e32b732a868c5ee0d861f90487.jpg' (length=36)
1 => string '72a221e32b732a868c5ee0d861f90487.jpg' (length=36)
2 => string '72a221e32b732a868c5ee0d861f90487.jpg' (length=36)
3 => string '72a221e32b732a868c5ee0d861f90487.jpg' (length=36)
4 => string '72a221e32b732a868c5ee0d861f90487.jpg' (length=36)
5 => string '72a221e32b732a868c5ee0d861f90487.jpg' (length=36)
4 =>
array (size=6)
0 => string 'd1082926ad23a9cb796a41fba3d30a9b.jpg' (length=36)
1 => string 'd1082926ad23a9cb796a41fba3d30a9b.jpg' (length=36)
2 => string 'd1082926ad23a9cb796a41fba3d30a9b.jpg' (length=36)
3 => string 'd1082926ad23a9cb796a41fba3d30a9b.jpg' (length=36)
4 => string 'd1082926ad23a9cb796a41fba3d30a9b.jpg' (length=36)
5 => string 'd1082926ad23a9cb796a41fba3d30a9b.jpg' (length=36)
Consegui resolver desta forma:

	public $foto = array();
        public $n_fotos = 0; /* Crio um marcador de keys com valor inicial 0 */

	public function ObterFotos($id_usuario){
            $Fquery = $this->Conexao->prepare("SELECT * FROM foto_usuario INNER JOIN usuario ON id_usuario = :id ORDER BY foto_usuario.id");
            $Fquery->execute(array(':id' => $id_usuario));
            while($result = $Fquery->fetch(PDO::FETCH_ASSOC)){
             /* Utilizo o marcador para evitar que os resultados se sobreponham */
                $this->foto[$this->n_fotos] = $result['nome'];

             /* Incremento o marcador */
                $this->n_fotos++; 
            }
	}

var_dump($this->foto)
array (size=5)
  0 => string 'a8a577ef64dc85ba53d742bd01262f21.jpg' (length=36)
  1 => string '2db22b323d11ce62574f12a27cdf405a.jpg' (length=36)
  2 => string '22133791f4294b8b3f5590091255f677.jpg' (length=36)
  3 => string '72a221e32b732a868c5ee0d861f90487.jpg' (length=36)
  4 => string 'd1082926ad23a9cb796a41fba3d30a9b.jpg' (length=36)
Agradeço Beraldo e Wiliam, sempre bom obter novos conhecimentos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.