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

Nao remove o produto ao clicar em Remover no produto-lista.php

Olá Pessoal, como vão?

Ao clicar em REMOVER no produto-lista.php o item não é mais removido embora seja mostrado a mensagem "produto removido com sucesso". Já fiz testes com outros arquivo de aulas anteriores mas não consegui achar o erro. Abaixo os códigos do produto-lista e do remover-produto:

remover-produto.php

<?php
require_once("cabecalho.php"); 
require_once("logica-usuario.php");

$id = $_POST['id'];

$produtoDao = new ProdutoDao($conexao);
$produtoDao->removeProduto($id);

$_SESSION["success"] = "Produto removido com sucesso.";
header("Location: produto-lista.php");
die();

?>

produto-lista.php

<?php
require_once("cabecalho.php");
?>

insira seu código aqui

<table class="table table-striped table-bordered">
    <?php
    $produtoDao = new ProdutoDao($conexao);
    $produtos = $produtoDao->listaProdutos();
    foreach($produtos as $produto) :
    ?>
        <tr>
            <td><?= $produto->getNome() ?></td>
            <td><?= $produto->getPreco() ?></td>
            <td><?= $produto->calculaImposto() ?></td
            <td><?= substr($produto->getDescricao(), 0, 40) ?></td>
            <td><?= $produto->getCategoria()->getNome() ?></td>
            <td>
            <?php 
               if ($produto->temIsbn()) {
               echo "ISBN: ".$produto->getIsbn();
         }
           ?>
    </td>

            <td>
                <a class="btn btn-primary" 
                    href="produto-altera-formulario.php?id=<?=$produto->getId()?>">
                    alterar
                </a>
            </td>
            <td>
                <form action="remove-produto.php" method="post">
                    <input type="hidden" name="id" value="<?=$produto->getId()?>">
                    <button class="btn btn-danger">remover</button>
                </form>
            </td>
        </tr>
    <?php
    endforeach
    ?>    
</table>

<?php include("rodape.php"); ?>

e também do ProdutoDao.php apenas da função remove produto:

function removeProduto($id) {

        $query = "delete from produtos where id = {$id}";

        return mysqli_query($this->conexao, $query);
    }

Obrigado

4 respostas

opa, coloca em echo na função removeProduto para ver se o id ta chegando. Acho que é a primeira coisa que eu faria.

Alberto obrigado pelo retorno. Desculpe minha falta de prática. Já vi isso mas não sei se estou pensando certo. Seria isso :

echo $query = "delete from produtos where id = {$id}";

e como vejo se o id está chegando? Quando coloquei assim processou do mesmo jeito.

acho que é echo "o id é ".$id

solução!

OK.. Alberto... só não entendi o por que do erro. Baixei o arquivo da aula no final do exercício e comparei com os que eu tinha feito. Estão iguais !!!! mas no meu não exclui.

Beleza Alberto.. não vou ficar preso com esses errinhos. Vou continuar os estudos .. Com os demais exercícios as dúvidas vão se esclarecendo...!

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