Omar~ 87 Denunciar post Postado Janeiro 15, 2018 Então qual seria a melhor solução para esse código que retorna uma array multi para acessar como array normal? Vou mostrar o código depois explico Método da classe: public static function userData($userID) { $select = new Select(); $select->selectQuery("users_login", "client_hash = :dbuser", "dbuser={$userID}"); if ($select->selectCount()) { return self::$data = $select->selectResult(); } } A classe Select é minha classe PDO que faz leituras no banco de dados, e retorna os dados em array. E como pode-se perceber estou buscando dados de um usuário especifico para ter todos dados da tabela. E retorno fica assim pela depuração: var_dump(SystemUser::userData('7665162471515633918')); Spoiler array(1) { [0]=> object(stdClass)#20 (14) { ["number_id"]=> string(2) "16" ["client_hash"]=> string(19) "7665162471515633918" ["pass"]=> string(44) "YWNjNjI0ZjI4MWVmMDNiZWQwZDg5NWY3NjI0ZmY1NTg=" ["mail"]=> string(17) "fulano@fulano.com" ["group_by"]=> string(1) "0" ["join_date"]=> string(10) "2018-01-10" ["last_ip"]=> string(9) "127.0.0.1" ["warn_lv"]=> string(1) "0" ["ban_date"]=> string(10) "2018-01-01" ["ban_reason"]=> string(0) "" ["name"]=> string(6) "fulano" ["birthdate"]=> NULL ["gender"]=> string(1) "S" ["fame"]=> string(1) "0" } } Muito bem então posso pegar/ver qualquer dado dessa array assim basta que eu passe alguma coisa como parâmetro para a classe de seleção faça a busca: echo (SystemUser::userData('7665162471515633918')[0]->name); Só que aí que está, fica meio estranho passar o índice da zero da array pois ela mesmo só tem esse índice, teria alguma forma e converter essa array multi em single? Exemplo para acessar: echo (SytemUser::userData('7665162471515633918')->name); Motivo: É porque sempre tenho que instanciar a classe de busca executar foreach definir os valores só então acessar os dados, assim sendo criando um método que já faça isso uma vez que esses dados de usuário vão ser constantemente acessados. Obs.: no fetchmode da classe PDO usei FETCH_OBJ, é só para informar porque os resultados vem em stdClass Compartilhar este post Link para o post Compartilhar em outros sites
washalbano 54 Denunciar post Postado Janeiro 15, 2018 Olá! Não sei se é uma boa prática, mas tente assim: ... return self::$data = $select->selectResult()[0]; ... Compartilhar este post Link para o post Compartilhar em outros sites
Eziquiel 96 Denunciar post Postado Janeiro 15, 2018 Por que não aponta o índice [0] no retorno da seu método, exemplo: return self::$data = $select->selectResult()[0]; Compartilhar este post Link para o post Compartilhar em outros sites
Omar~ 87 Denunciar post Postado Janeiro 15, 2018 kkkkkkkkkkkkk Putz!! Já to com tanta coisa na cabeça que nem pensei no mais óbvio. Compartilhar este post Link para o post Compartilhar em outros sites