php mysql - 从while循环插入一个查询

时间:2018-02-14 19:24:09

标签: php mysql

我有一个循环并提交表单。我想从变量中插入一个查询但是当我点击提交按钮时,最后一个(id号)变量插入到数据库中,当我移动$_POST['submit']部分时,所有ID的插入到数据库中。如何从循环插入其中一个变量?

这是暂时的部分:

<?php
    $supql="SELECT * FROM `tbl_users_posts`";
    $rez=mysqli_query($conn,$supql);
    while ($row=mysqli_fetch_assoc($rez)) {
        $psid=$row['id'];
        echo $row['post'];
?>
<form id="form1" name="form1" method="post">
  <input type="submit" name="submit" id="submit" value="Submit">
</form>                             
<?php } ?>

这是提交部分:

if (isset($_POST['submit'])) {
    $pid=$_POST['postid'];
    $inslik="INSERT INTO t_plik (pid,uid)VALUES('$psid','$uid')";
    mysqli_query($conn,$inslik);
}

感谢

<?php
$conn=mysqli_connect('localhost','root','','sitn');mysqli_set_charset($conn,"utf8");
$supql="SELECT * FROM `tbl_users_posts`";
$rez=mysqli_query($conn,$supql);
while ($row=mysqli_fetch_assoc($rez)){
    $psid=$row['id'];
    echo $row['post'];
    ?>
    <form id="form1" name="form1" method="post">
    <input type="hidden" name="postid" value="<?php echo $psid; ?>">
    <input type="submit" name="submit" id="submit" value="Submit">
    </form>                 
    <?php }?>
<?php                                       
if(isset($_POST['submit'])){
    $pid=$_POST['postid'];
    $inslik="INSERT INTO t_plik (pid,uid)VALUES('$psid','$uid') ";
    mysqli_query($conn,$inslik);
}?>

1 个答案:

答案 0 :(得分:2)

您的表单没有name="postid"的输入,因此未设置$_POST['postid']。你可以用隐藏的输入发送它。

<form id="form1" name="form1" method="post">
  <input type="hidden" name="postid" value="<?php echo $psid; ?>">
  <input type="submit" name="submit" id="submit" value="Submit">
</form> 

表单仍应位于while循环中,因此您将为每个帖子获取单独的表单。

您在插入的代码中也有拼写错误:

$pid=$_POST['postid'];

应该是:

$psid=$_POST['postid'];

所以你没有插入提交的ID。