我有两个表 (table_server) & (table_comment)。 当我将数据放入 table_server 循环内的 table_comment 时,它会将数据放入表中的每一行。
有没有办法根据 row-parent_id 只在一行中插入数据? 因此,如果我在第 4 行写评论,那么它只会在第 4 行记录。
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/