Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Não exclui produto da lista

Olá, pessoal. Estou com um erro ao tentar remover o produto da lista. O código não apresenta nenhum erro e até mostra a confirmação da exclusão, mas o produto permanece na lista, mesmo atualizando ela. O que estaria fazendo de errado? Segue abaixo o código:

banco-produto.php

<?php

function removeProduto($conexao, $id) {
    $query = "delete from produtos where id = {$id}";
    return mysqli_query($conexao, $query);
}

remove-produdo.php

<?php 
include("conecta.php");
include("banco-produto.php");

$id = $_GET['id'];
removeProduto($conexao, $id);
header("Location: produto-lista.php?removido=true");
die();

produto-lista.php

<?php include("cabecalho.php");
include("conecta.php");
include("banco-produto.php"); ?>

<table class="table table-striped table-bordered">
    <?php
        $produtos = listaProdutos($conexao);
        foreach ($produtos as $produto) : ?>
        <tr>
            <td><?= $produto['nome']?></td>
            <td><?= $produto['preco']?></td>
            <td>
                <a href="remove-produto.php?id=<?php $produto['id'] ?>" class="text-danger">Remover</a>
            </td>
        </tr>
        <?php                 
        endforeach ?>
</table>

<?php
if(array_key_exists("removido", $_GET) && $_GET['removido']=='true')
{?>
    <p class="alert-success">Produto apagado com sucesso.</p>
<?php } ?>

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

Aparentemente o código está idêntico ao da aula, mas não consegui identificar o erro. Dei uma olhada nos problemas de outros tópicos, mas não consegui resolver. Fico aguardando auxílio de vocês e agradeço desde já pela atenção.

3 respostas
solução

Oi, João, tudo bem?

Tenta alterar essa linha de comando:

<a href="remove-produto.php?id=<?php $produto['id'] ?>" class="text-danger">Remover</a>

Para:

 <a href="remove-produto.php?id=<?=$produto['id']?>" class="text-danger">remover</a>

Um pequeno detalhe passou despercebido, depois da segunda interrogação ao invés do php pomos o sinal de igualdade <a href="remove-produto.php?id=<?=$produto['id']?>"

Espero ter te ajudado :}

Muito obrigado, Lais. Sua sugestão resolveu meu problema. Eu tinha visto as duas formas de abrir uma tag php, mas não sabia que poderia interferir na execução, ficarei mais atento a estes detalhes na próxima. Muito obrigado pela ajuda.

Estamos a disposição, João! Bons estudos :}

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