php - 在循环中仅将数据插入一行

标签 php mysql sql

我有两个表 (table_server) & (table_comment)。 当我将数据放入 table_server 循环内的 table_comment 时,它会将数据放入表中的每一行。

有没有办法根据 row-parent_id 只在一行中插入数据? 因此,如果我在第 4 行写评论,那么它只会在第 4 行记录。

Example of my table_comment

echo "<ul>";
if($result-> num_rows > 0){
    while($row = $result-> fetch_assoc()){

        $theRowId = $row['ID'];

        if(isset($_POST['commentSubmit'])){
            $comment = $_POST['comments'];

            if(!empty($comment)){
                $sqlss = "INSERT INTO table_comment(parent_id, comment) VALUES ('$theRowId', '$comment')";
                $resultss = $conn->query($sqlss);
            }
        }

我的表单 html

<form method='POST' action='index.php' id='singleAmountForm'>
   <textarea class='txtarea' id='".$row['ID']."' name='comments' placeholder='Comment...' rows=6></textarea>
   <button type='submit' name='commentSubmit' id='insertComment' class='visa-fler'>Add comment</button>
</form>

View example table_info = table_server

最佳答案

将行 ID 放入隐藏输入或提交按钮的值中。

<form method='POST' action='index.php' id='singleAmountForm".$row['ID']."'>
   <textarea class='txtarea' id='".$row['ID']."' name='comments' placeholder='Comment...' rows=6></textarea>
   <button type='submit' name='commentSubmit' id='insertComment".$row['ID']."' class='visa-fler' value='".$row['ID']"'>Add comment</button>
</form>

我还更改了表单中的所有 ID,以便它们包含行 ID,因为 DOM 中不应该有重复的 ID(但也许这些元素甚至不需要 ID,因为它们会动态变化)。

然后您可以插入注释(这不需要在循环中完成)。最好使用准备好的语句来防止 SQL 注入(inject)。

if(!empty($_POST['commentSubmit']) && !empty($_POST['comments'])){
    $sqlss = "INSERT INTO table_comment(parent_id, comment) VALUES (?, ?)";
    $stmt = $conn->prepare($sqlss);
    $stmt->bind_param("ss", $_POST['commentSubmit'], $_POST['comments']);
    $stmt->execute($sqlss) or die($stmt->error);
}

关于php - 在循环中仅将数据插入一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55087233/

相关文章:

javascript - WordPress 从错误的本地主机加载样式和脚本

php - 使用单个变量中的更新查询将复选框值从表单更新到数据库(序列化)

mysql - 将 mysql 表导出到 ms Access 表中的最快/安全方法

sql - postgres 可以*有条件地*检查限制重复项吗?

sql - "No column information was returned"从空 Excel 工作表中选择时出错

php - 如何在中间件 Laravel 5 中捕获 "too many attempt"异常

php $_POST 选择选项值不起作用未定义索引错误

php sql 错误消息更改了数据库上下文

mysql - 错误 2005 (HY000) : Unknown MySQL server host '[35.232.51.216]' (0) in google cloud SQL client

php - Doctrine - 在 Textarea 中插入 MySQL 数据库时保留换行符?