Vamos lá,
Na seleção dos dados do banco: Qual a diferença entre a query e o fetch_assoc?
Na aplicação destas funções que retornaram do banco:
A função editaProduto e logo abaixo definiu uma variavel para o resultado dela... Faz super sentido, mas funcionaria sem essa nova definição?
Pq até então tratamos o como $produto
os detalhes do produto, inclusive no banco, a partir daqui terei que usar $produtoCarregado
?
Falo isso pq no exemplo da aula 2, para o produto-lista.php
o professor utiliza na função do banco como $produto ($produto->id... etc) veja:
//função de listar produtos
function listaProdutos($conexao) {
$produtos = array();
$resultado = mysqli_query($conexao, "select p.*, c.nome as categoria_nome from produtos as p join categorias as c on p.categoria_id = c.id");
while($produto_atual = mysqli_fetch_assoc($resultado)) {
$produto = new Produto;
$categoria = new Categoria;
$categoria->nome = $produto_atual['categoria_nome'];
$produto->id = $produto_atual['id'];
$produto->nome = $produto_atual['nome'];
$produto->preco = $produto_atual['preco'];
$produto->descricao = $produto_atual['descricao'];
$produto->categoria = $categoria;
$produto->usado = $produto_atual['usado'];
$produto->concluido = $produto_atual['concluido'];
$produto->data_criacao = $produto_atual['data_criacao'];
$produto->data_modificado = $produto_atual['data_modificado'];
array_push($produtos, $produto);
}
return $produtos;
}
E para lista-los, ele print usando o termo : <?= $produto->nome ?>
Eu estou levantando essa questão pq neste exemplo funcionou chamar a variavel que imprime do mesmo nome do que chamamos no banco, mas na hora do edita-produto acabou que não funcionou...
Tenho outra questão ainda sobre o que preciso declarar entre parenteses () na hora de chamar uma função:
Veja que neste exemplo agente criou um novo objeto Produto e falamos que ele chama $produto
, e lá no banco fizemos isso de novo... Testei aqui e vi que também funcionaria chamando o termo que recebemos do $_GET
de somente $id
na função do banco:
O codigo do edita-produto ficou assim:
$produto = new Produto;
$id = $_GET['id'];
$produtoCarregado = editaProduto($conexao, $produto);
echo $produtoCarregado->id ."</br>";
echo $produtoCarregado->nome ."</br>";
echo $produtoCarregado->preco ."</br>";
echo $produtoCarregado->descricao ."</br>";
echo $produtoCarregado->data_criacao ."</br>";
Mas assim também funciona: Pagina
$id = $_GET['id'];
$produtoCarregado = editaProduto($conexao, $id);
echo $produtoCarregado->id ."</br>";
echo $produtoCarregado->nome ."</br>";
Banco
function editaProduto($conexao, $id) {
$query = "select * from produtos where id = {$id}";
Levando em consideração que também funciona, qual comportamento você indica?