首页 > 解决方案 > 我的数据库中的评论重复,我该如何解决?

问题描述

我有一些问题,每次刷新页面时,它都会复制最后一条评论。我尝试使用重定向命令:

header("location:../../index.php");

但它给了我这个错误:

警告:无法修改标头信息 - 标头已由 /home/timpovodnik/gymshark.timpovodnik.xyz/PHP/comments.php 中的(输出开始于 /home/timpovodnik/gymshark.timpovodnik.xyz/header.php:87)发送第 9 行'。

这是我的代码:

<?php
    function setComments($conn) { // Funkcija, ki jo kasneje kličem v LoseFat in GainMuscles datoteki //zraven dodamo se spremenljivko $conn, ki je iz datoteke baza.php
        if(isset($_POST['commentSubmit'])) { // Če kliknemo na gumb zažene kodo
            $uid = $_POST['uid'];
            $date = $_POST['date'];
            $message = $_POST['message'];
            $sql = "INSERT INTO komentarji (uime, sporocilo, datum, uporabnik_id, program_id, objava_id) VALUES ('$uid', '$message', '$date', '1', '1', '1')";
            $result = mysqli_query($conn, $sql); // IZVEDE v BAZI
            header("location:../index.php");
            exit();
        }
    }

    function getComments($conn) {
        $sql = "SELECT * FROM komentarji";
        $result = mysqli_query($conn, $sql); // IZVEDE v BAZI
        while ($row = mysqli_fetch_assoc($result)) { // da v tabelo in jo shrani v $row
            echo "<div class='row'>";
                echo "<div class='comment-box'>";
                    echo $row['uime']."<br>";
                    echo $row['datum']."<br>";
                    echo nl2br($row['sporocilo']);
                echo "</div>";
            echo "</div>";
        }
    }
?>

标签: phphtmlsqldatabase

解决方案


我修复了它,还向它添加了 Mysqli 函数。

感谢您的所有建议。

<?php
include 'baza.php';

    if(isset($_POST['commentSubmit'])) { // Če kliknemo na gumb zažene kodo
        $uid = $_POST['uid'];
        $date = $_POST['date'];
        $message = $_POST['message'];

        $sql = "INSERT INTO komentarji (uime, sporocilo, datum) VALUES (?, ?, ?);";
        $stmt = mysqli_stmt_init($conn);

        if (!mysqli_stmt_prepare($stmt, $sql)) {
                    header("Location: ../loseFat.php?error=sqlerror"); // Če stavek ne dela
                    exit();
            }
            else {        
            mysqli_stmt_bind_param($stmt, "sss", $uid, $message, $date); 
            mysqli_stmt_execute($stmt); // Executa stavek v DB

            header("Location: ../loseFat.php?comment=success");
            exit();
        }
    }


function getComments($conn) {
    $sql = "SELECT * FROM komentarji";
    $result = mysqli_query($conn, $sql); // IZVEDE v BAZI
    while ($row = mysqli_fetch_assoc($result)) { // da v tabelo in jo shrani v $row
        echo "<div class='row'>";
            echo "<div class='comment-box'>";
                echo $row['uime']."<br>";
                echo $row['datum']."<br>";
                echo nl2br($row['sporocilo']);
            echo "</div>";
        echo "</div>";
    }
}

?>


推荐阅读