Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

mysqli_fetch_assoc ou mysqli_fetch_object

Fiz as modificações nos meus arquivos seguindo o jeito que o professor falou, até a hora do produto formulário base, mas acabei com um erro na hora de buscar o produto ele retornava um array com o mysqli_fetch_assoc então mudei para mysqli_fetch_object e funcionou normalmente como esperando, queria saber qual séria a melhor forma, ja que a resposta do exercicio foi feita de outra maneira usando o assoc

O jeito que fiz:

function buscaProduto($conexao, $id) {
    $query = "select * from produtos where id = {$id}";
    $resultado = mysqli_query($conexao, $query);
    return mysqli_fetch_object($resultado);
}
2 respostas
solução!

Oi Reynnan, tudo bem? As duas funções fazem praticamente a mesma coisa. A diferença é que uma retorna um Array associativo com todos os valores, e o outro um objeto da classe stdClass.

Na prática, tanto faz. O que vai definir mesmo qual usar é o conforto com as funções e a preferência. Sem contar que a segunda, fetch_object, é a preferida quando estamos trabalhando com Orientação a Objetos. Entende?

Espero ter ajudado, bons estudos!

Opa, obrigado a minha dúvida foi solucionada mas uma coisa que percebi é que quando eu uso o fetch_object, no arquivo "produto-formulario-base" quando eu tento ver o valor de "$produto->categoria->id " não retorna valor nenhum e com isso a categoria no momento do altera produto não fica no lugar certo.

Porém quando uso o jeito que foi demonstrado no curso funciona normalmente, sem eu mudar nada em nenhuma classe apenas na função de busca produto

Que no curso foi feito desse jeito:

function buscaProduto($conexao, $id) {
    $query = "select * from produtos where id = {$id}";
    $resultado = mysqli_query($conexao, $query);
    $produto_buscado = mysqli_fetch_assoc($resultado);

    $categoria = new Categoria();
    $categoria->id = $produto_buscado['categoria_id'];

    $produto = new Produto();
    $produto->id = $produto_buscado['id'];
    $produto->nome = $produto_buscado['nome'];
    $produto->descricao = $produto_buscado['descricao'];
    $produto->categoria = $categoria;
    $produto->preco = $produto_buscado['preco'];
    $produto->usado = $produto_buscado['usado'];

    return $produto;
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software