Ir para conteúdo

POWERED BY:

Arquivado

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

Leedengo

foreach

Recommended Posts

pessoal to fazendo uma listagem de dados aqui,e tipo ela retorna o nome array em vez dos resultados,

tem algo de errado com meu script?

 

public function adminListar() {

       global $core;
       $arr = array();

       $result = DB::getConexao()->query("SELECT * FROM mdl_photo");

     $data = array();
      while($row = $result->fetchALL(PDO::FETCH_OBJ)){
           $data[] = $row;
      }
    return $data;


}

 

alguem me ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, pra que você vai criar outro array sendo que o fetchAll vai te retornar tudo o que você precisa.

 

O fetchAll já retorna um array multi-dimensional com os dados da tabela, não vejo razão de estar utilizando esse while

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu normalmente pediria para você postar sua classe de conexão, mas como me parece ter alguma coisa a ver com a PDO, remova o while().

 

Esse fetchAll(), provavelmente já encapsula o trabalho de iterar sobre o recordset, daí basta atribuí-lo à uma variável, direto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você está tentando mostrar os dados do array ? poste sua classe de conexão aí também.

 public static function getConexao() { 
       if (!self::$instancia) { 						
		try {			
			self::$instancia = new PDO(DB_TYPE.':dbname='.DB_NAME.';host='.DB_HOST, DB_USER, DB_PASS);
			self::$instancia->query('SET NAMES '.DB_CHARSET);
			self::$instancia->query('SET CHARACTER SET '.DB_CHARSET); 
			return self::$instancia;
		} catch (PDOException $e) {
			echo 'Erro: '.$e->getMessage();
		}			
	}
	return self::$instancia;
   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não responde a minha primeira pergunta, e eu acho bem melhor do que você executar essas querys, fazer o seguinte:

 

self::$instancia->setAttribute( PDO::MYSQL_ATTR_INIT_COMMAND , 'SET NAMES utf8' ) ;

 

Se for MySQL, claro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ué, você tem que iterar sob o resultado, utilize o foreach ..

<?php
     foreach ( $dados as $row ) {
               echo $row [ 'campoDataTabela' ] ; 
               // ...
     }

 

tipo deu quase certo , so que tipo,troquei echo pelo return , senão ele iria printar fora da pagina, mas agora ele so mostra o primeiro resultado eu quero todos.. entendeu mano?

o problema é que ele so mostra 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, o return VOLTA com o array , e não imprime, você tem que iterar sob ele, não tem como imprimir array com echo, debuge o resultado também:

print_r ( $class->adminListar() ) ;

 

:seta: http://br2.php.net/manual/en/pdostatement.fetchall.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não é outra alternativa, você está usando algo que não sabe usar, simplesmente é este o caso, se você entendesse o retorno da coisa, vai saber como tratar e mostrar os dados, eu já te falei como tem que fazer, e te mandei o link para a documentação da função, por lá mesmo você vai ver o retorno ..

 

tem outra alternativa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não é outra alternativa, você está usando algo que não sabe usar, simplesmente é este o caso, se você entendesse o retorno da coisa, vai saber como tratar e mostrar os dados, eu já te falei como tem que fazer, e te mandei o link para a documentação da função, por lá mesmo você vai ver o retorno ..

 

Nada Ainda Tentei Mas Não Foi;

 

Com echo vai Mas, fica fora do layout, so com return que fica dentr

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que passar o retorno do método adminListar() para a view. Na view você pega este valor e usa o foreach para iterar por este array e exibir os dados que estão no recordset.

 

Se não conseguir, poste seu controller, sua view e como tentou fazer.

 

Carlos Eduardo

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.