Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

O $id está vazio nas funções de alterar e buscar

Tudo está funcionando exceto as funções de alterar e buscar. banco-produto.php

<?php
require_once("conecta.php");




function listaComentarios($conexao) {
    $comentario = array();
    $resultado = mysqli_query($conexao, "select * from comentarios");
   /* $resultado = mysqli_query($conexao, "select p.*, c.nome as categoria_nome from comentarios as p join categorias as c on p.categoria_id = c.id"); */

    while($comentarios = mysqli_fetch_assoc($resultado)) {
        array_push($comentario, $comentarios);
    }

    return $comentario;
}

function insereComentario($conexao, $nome, $comentario, $data) {
    $query = "insert into comentarios (nome, comentario, data)
        values ('{$nome}', '{$comentario}', NOW())";
    return mysqli_query($conexao, $query);
}




function alteraComentario($conexao, $id, $nome, $comentario, $data) {
    $query = "update comentarios set nome = '{$nome}', comentario = '{$comentario}', data= '{$data}' where id = '{$id}'";
    return mysqli_query($conexao, $query);
}

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

function buscaComentario($conexao, $id) {
    echo($id);
    $query = "select * from comentarios where id = '{$id}'";
    echo($query);
    $resultado = mysqli_query($conexao, $query);

    return mysqli_fetch_assoc($resultado);
}

produto-altera-formulario.php

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

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


?>

<h1>Alterando Comentário</h1>
<form action="altera-produto.php" method="post">
    <input type="hidden" name="id" value="<?=$comentario['id']?>" />
    <table class="table">

        <?php include("produto-formulario-base.php");

         ?>

        <tr>
            <td><button class="btn btn-primary" type="submit">Alterar</button></td>
        </tr>
    </table>
</form>

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

altera-produto.php

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

<?php

$id = $_POST["id"];
$nome = $_POST["nome"];

$comentario = $_POST["comentario"];


$data = $_POST["data"];




if(alteraComentario($conexao, $id, $nome, $comentario, $data)) { ?>
    <p class="text-success">O comentário <?= $nome; ?>, <?= $comentario; ?> alterado com sucesso!</p>
<?php } else {
    $msg = mysqli_error($conexao);
?>
    <p class="text-danger">O comentário de <?= $nome; ?> não foi alterado: <?= $msg ?></p>
<?php
}
?>

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

Aparece a mensagem alterado com sucesso, mas ele não altera no banco. Alguém pode me ajudar por favor?

1 resposta
solução!

AChei o problema.

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