Meu código não está carregando o formulário de alteração de produto e também não está excluindo mais!! Tudo o correu após eu tentar encapsular tdo, até sei aonde está o problema (eu acho!! rsrsr) mas não sei como resolver... alguém pode me ajudar?? Vou colocar os códigos abaixo:
1) Arquivo: produto-altera-formulario.php
<?php
require_once("cabecalho.php");
require_once("banco-categoria.php");
require_once("banco-produto.php");
$id = $_GET['id']; //ACHO QUE O PROBLEMA ESTÁ AQUI JÁ QUE NÃO ESTÁ CARREGANDO O ID
$produto = buscaProduto($conexao, $id); //OU O PROBLEMA É AQUI!!
$categorias = listaCategorias($conexao);
$selecao_usado = $produto->isUsado() ? "checked='checked'" : "";
$produto->setUsado($selecao_usado);
?>
<h1>Alterando produto</h1>
... continua o código
2) Arquivo: banco-produto.php
function buscaProduto($conexao, $id){
$query = "select * from produtos where id = $id";
echo $query; //para debug
$resultado = mysqli_query($conexao, $query);
$produto_buscado = mysql_fetch_assoc($resultado);
$categoria = new Categoria();
$categoria->setId($produto_buscado['categoria_id']);
$id = $produto_buscado['id'];
$nome = $produto_buscado['nome'];
$descricao = $produto_buscado['descricao'];
//$categoria = $categoria;
$preco = $produto_buscado['preco'];
$usado = $produto_buscado['usado'];
$produto = new Produto($nome, $preco, $descricao, $categoria, $usado);
return $produto;
}
...continua o código
3)Resultado apresentado na página quando tento alterar:
select * from produtos where id =
( ! ) SCREAM: Error suppression ignored for
( ! ) Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\loja\banco-produto.php on line 59
Call Stack
# Time Memory Function Location
1 0.0017 143744 {main}( ) ..\produto-altera-formulario.php:0
2 1.0210 183072 buscaProduto( ) ..\produto-altera-formulario.php:7
3 1.0215 183440 mysql_fetch_assoc ( ) ..\banco-produto.php:59
...seguido do formulário em branco...
4) Arquivo: altera-produto.php
<?php
require_once("cabecalho.php");
require_once("banco-produto.php");
require_once("class/Produto.php");
require_once("class/Categoria.php");
$categoria= new Categoria();
$categoria->getId($_POST['categoria_id']);
$id = $_POST['id'];
$nome = $_POST['nome'];
$preco = $_POST['preco'];
$descricao = $_POST['descricao'];
$categoria = $categoria;
if (array_key_exists('usado', $_POST)) {//verifica se existe a variavel usado no post (se foi selecionado o checkbox)
$usado = "true";
} else{
$usado = "false"; //tem que ser colocado entre aspas senao dá pau na query pq ele entende como nulo sem aspas
}
$produto= new Produto($nome, $preco, $descricao, $categoria, $usado);
5) Arquivo: remove-produto.php
<?php
require_once("cabecalho.php");
require_once("banco-produto.php");
require_once("logica-usuario.php");
$id = $_POST['id']; //PROBLEMA AQUI
removeProduto ($conexao, $id); //OU O PROBLEMA É AQUI!!
$_SESSION["success"] = "Produto removido com sucesso.";
header("location: produto-lista.php"); //o retorno nao e dado em outra pagina, volta para ela mesma
die(); //força o encerramento do script
?>
6) Resultado na tela ao tentar remover:
Produto removido com sucesso.
(A mensagem de removido com sucesso aparece, mas não remove o produto da lista)
Com o echo que incluí pra degub, identifiquei que na verdade o id do produto que eu quero alterar/ remover não está sendo carregado para a página de alteração/ remoção seguinte e com isso, está trazendo em branco o resultado da query!! Só não sei como resolver... Alguém se habilita? :-D