我想为每篇文章添加评论,所以在我的 "foreach" 循环中我为每篇文章添加了评论,但是 "set a comment" 功能运行到所有艺术

i want to add commenting to each article, so inside my"foreach"cycle I added commenting to each article, but "set a comment" function runs to all art

我想为每篇文章添加评论,所以在我的“foreach”循环中我为每篇文章添加了评论,但是“设置评论”功能对所有文章都运行

这就是制作文章的代码window

        <?php $articles_qr = mysqli_query($connection, "SELECT * FROM `articles` ");
    $articles = array();
    while ( $art = mysqli_fetch_assoc($articles_qr))
                    {
                        $articles[] = $art;
                    }

 ?>
            <?php foreach ($articles as $art)
                    {
             ?>
    <section>
        <div class="containerstuff">

            <div class="stuffpic">
            <img src="<?php echo "../static/imagespages/",$art['image'] ?>"  class="pico">

            </div>
            <div class="article">
                <h1><?php
                        echo $art['title']
                    ?>
                </h1>
                <?php
                        echo $art['text'];
                        echo $art['id']
                    ?>

            </div>
            </div>

        <div class="scrollmenu">

            <?php include "../includes/comments.php";?>

    </section>
        <?php
        } ?>

这就是代码注释 window

        <?php
date_default_timezone_set(timezone_identifier);
include_once '../comments.ink.php'

?>
<div class="containercom">

                <img src="#" class="commpic">
                <p class="comment"></p>
            </div>


            <div class="blockcom">



                <form class='form' method='POST' action="<?php echo setComments($connection)?>">

                    <div class='form__group'>

                        <input type='hidden' name='page_id' value="<?php echo $art['id']?>" >

                        <input type='hidden' name='uid' value='Anonymous'>
                        <input type='hidden' name='pubdate' value="<?php echo date('Y-m-d H:i:s')?>" >
                        <textarea name='text' class='form__control' placeholder ='Введите комментарий...' required=''></textarea>

                    </div>
                        <div class='form__group'>
                            <input type='submit' class='form__control2' name='commentSubmit'></input>
                        </div>
                    </div>
                </form>

这就是 INSERT 函数的代码

<?php

        static $firstTime = true;
function setComments($connection) {
    if(isset($_POST['commentSubmit'])){
        $idcom = $_POST['page_id'];
        $uid = $_POST['uid'];
        $pubdate = $_POST['pubdate'];
        $text = $_POST['text'];

        $sql =
        "INSERT INTO `comments` (page_id, uid, pubdate, text)
        VALUES ('$idcom', '$uid', '$pubdate', '$text')";

        $result = $connection->query($sql);
        $firstTime = false;

    }

}

那么我怎样才能只插入一篇文章(所以当我现在添加它时,出现的评论和我在数据库中的文章一样多)

我认为你应该使用 ajax 来附加一个新评论,这是广泛使用的解决方案,你这样做会变得难以处理。

我还没有找到解决方案,所以我只是 select 换了一种方式。

对于每篇文章,我都放置了一个 post 评论按钮,它将用户发送到包含这篇文章的页面,对于“href”的这个按钮,我编写了 php 代码(href = "comments.php?id=<?php echo $art['id']"?>) 对于此页面,我仅针对此 ID 使用 $_GET 到 select 篇文章。然后我只是把我写的注释函数放在那里所以它现在可以正常工作因为函数只适用于 1 个参数