Jump to content
Omar~

Otimizando o código

Recommended Posts

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

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.