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

PHP e MySql - Aula 6

Com código a seguir tento realizar a deleção do produto do banco de dados, e não encontro o erro.

<?php 
function removeProduto($conexao, $id) {
    $query = "DELETE * FROM produtos where id = {$id}";
    return mysqli_query($conexao, $id);
}
?>
<?php 
include("cabecalho.php");
include("conecta.php");
include("banco-produto.php");

$id = $_GET['id'];
removeProduto($conexao, $id);

header("Location: catalogo.php?removido=true");
die();

include("rodape.php");
?>
7 respostas

Por que você coloca o $id entre chaves ?

 $query = "DELETE * FROM produtos where id = {$id}";

Bem faz algum tempo que eu nao programo mais em PHP mas, talvez possa ser isso ou não tbm kkkk

Faz o seguinte da um echo na $query e copia o resultado direto no MYSQL executa por la o resultado do echo

Sua query esta errada. O asterisco (*) nós utilizamos no SELECT, o DELETE não possui.

Em vez disso:

$query = "DELETE * FROM produtos where id = {$id}";

Utilize isso:

$query = "DELETE FROM produtos where id = {$id}";

Obrigado, fiz a alteração mas o erro ainda persiste.

solução!

Todos colaboraram com a solução mas ainda faltou um detalhe, só uma observação quando a string está dentro de apas duplas (" ") é interessante utilizar chaves { } pra interpolar variáveis o código fica mais limpo do que fazer concatenação. O asterisco realmente estava incorreto, contudo tem uma falha também na chamada da função mysqli_query(), na chamada deve ser informado dois parâmetros ($conexao, $query), no seu código você está informando ($conexao,$id) por isso está ocorrendo o erro, pois a função está esperando a query e não o id. Espero ter ajudado, Abraços e bons estudos.

Muito obrigado, Marlon. O erro era esse realmente, agradeço, boa noite!

Por nada é um prazer ajudar, boa noite pra você também !!!