acessar array a partir das chaves desse jeito $key->value

59 views
Skip to first unread message

Erick Eden

unread,
May 1, 2012, 4:24:45 PM5/1/12
to listaphp
amigo, tenho uma classe q retorna do banco todos os usuarios cadastrados, queria poder acessar a array como acesso minhas variaveis na classe do tipo

$classe->variavel

$key->value

como faço isso?

Douglas Bezerra Possas

unread,
May 1, 2012, 4:39:10 PM5/1/12
to list...@googlegroups.com
Para vc retornar um OBJETO do banco, ao inves de um array, use while ( $objeto = mysql_fetch_object($resultado) ) { print_r($objeto); } e seja feliz...

2012/5/1 Erick Eden <playno...@gmail.com>
--
============================================================
JQUERY MAGAZINE > http://www.jquerymagazine.com.br
--
PHP MAGAZINE > http://www.phpmagazine.com.br
--
LISTA NODE.JS > https://groups.google.com/group/lista-nodejs?hl=pt-br
--
AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
--
PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
--
DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
============================================================



--
Douglas Bezerra Possas
Programador PHP
Nilópolis  – RJ – Brasil
Cel.: (67) 8165-3658
Curriculum: http://cvu.vg/dpossas
MSN: con...@webmoderna.com.br
Skype: douglas.possas
Twitter: dpossas
PORTFOLIO
http://www.rezendedarosa.adv.br
http://www.4iprcg.com.br
http://www.bao-bing.com

Erick Eden

unread,
May 1, 2012, 5:05:16 PM5/1/12
to list...@googlegroups.com
eu sei disso cara, vc não entendeu minha duvidas, estou escrevendo classes models para minha DB

public function findAll()
    {
           $this->Consulta("SELECT * FROM ".$this->tabela."");
           while($row = $this->FetchArray()){
           $this->ar[$row['id']]['id'] = $row['id'];
           $this->ar[$row['id']]['name'] = $row['name'];
           $this->ar[$row['id']]['contact']  = $row['contact_name'];
           $this->ar[$row['id']]['contact_email'] = $row['contact_email'];
           $this->ar[$row['id']]['division'] = $row['division'];
           $this->ar[$row['id']]['password'] = $row['password'];
           $this->ar[$row['id']]['info'] = $row['info'];
           $this->ar[$row['id']]['photo'] = $row['photo'];
           $this->ar[$row['id']]['photo_cap'] = $row['photo_cap'];
           $this->ar[$row['id']]['disabled'] = $row['disabled'];
           $this->ar[$row['id']]['dstats'] = $row['dstats'];
           $this->ar[$row['id']]['wens'] = $row['wens'];
           $this->ar[$row['id']]['nick'] = $row['nick'];
           $this->ar[$row['id']]['nick_konami'] = $row['nick_konami'];
           $this->ar[$row['id']]['msn'] = $row['msn'];
           $this->ar[$row['id']]['cidade'] = $row['cidade'];
           $this->ar[$row['id']]['liberado'] = $row['liberado'];
           $this->ar[$row['id']]['n_sorteio'] = $row['n_sorteio'];
           $this->ar[$row['id']]['salario'] = $row['salario'];
           $this->ar[$row['id']]['limite'] = $row['limite'];
           }
           return $this->ar;
           
    }

queria saber como acesso os valores da array desse jeito

$allUser = $user->findAll();

foreach($allUser as $a){
echo $a->nome;
}





2012/5/1 Douglas Bezerra Possas <dougla...@gmail.com>

Oliveira, Leandro

unread,
May 1, 2012, 7:16:08 PM5/1/12
to list...@googlegroups.com
Erick, tu tá usando o que pra ler no banco???

use PDO para qualquer interação no banco =)

quando for dar um fetch ou fetchAll utilize o parametro PDO::FETCH_CLASS


Atenciosamente,

Leandro Leite Pinto de Oliveira

about.me/lleitep3

leandroleite.info

 Web Developer



Jimmy Neph - question = ( to ) ? be : ! be;

unread,
May 2, 2012, 12:27:33 AM5/2/12
to list...@googlegroups.com
Nossa, cara... Vc mesmo postou a resposta na sua pergunta... rsrsrs

Nesse caso, você declara as propriedades que você quer e depois as popula conforme o seu fetchArray(). Se bem que o fetchObject, como a galera disse acima vai te quebrar um galhao, pois ela vai criar as suas propriedades on the fly...

A dica do Leandro tb eh muito boa! Usar a PDO ja te alivia e muito a escrita de codigo, e se quiser algo mais parrudo, vc pode usar um ORM como o Doctrine...

[]`s

Alan Tavares

unread,
May 2, 2012, 7:33:34 AM5/2/12
to list...@googlegroups.com
Se não puder implementar nenhuma das alternativas já citadas, que recomendo fortemente, então você pode simplesmente fazer um cast:

$arr = array('teste' => 123 );
$obj = (object)$arr;

echo $obj->teste; // printa 123


Atenciosamente,

Alan Tavares
Superlogica Tecnologia
http://www.superlogica.com
Suporte: (19) 4009-6800
Comercial: 0800 709-6800
Skype: alan.t.chaves

Erick Eden

unread,
May 2, 2012, 12:55:29 PM5/2/12
to list...@googlegroups.com
era isso mesmo q eu queria, quer retornasse os valores como objeto para acessa-los como se fosse um metodo de uma classe

utilizei o mysql_fetch_object, ele faz isso! 

muito bom!

Erick Eden

unread,
May 2, 2012, 12:58:46 PM5/2/12
to list...@googlegroups.com
então
Jimmy Neph eu estava usando o doctrine mesmo, mais achei ele muito complexo pra usar em um aplicativo pequeno,
entao resolvi criar meu proprios models sendo gerando diretamente de cada tabela,
mais nao sabia como retornar os valores da tabela como objeto 


Reply all
Reply to author
Forward
0 new messages