php - 从复选框插入 MySQL - foreach 语句

标签 php mysql

在下面的代码中,我正在从表单插入 mysql 表

表单字段是从 MySQL 数据库填充的,可以正常工作。

问题是从多个复选框中提取数据并将每个值作为新行插入到同一表“选择”列 userid 和 videoid 中。

userid 字段已正确插入,但 videoid 未发布任何数据。

     <?php
    $con=mysqli_connect("$host", "$username",           "$password","$db_name")or die("cannot connect");//connection string  
    $user=$_POST['userid']; 
    $checkbox1=$_POST['videoid'];  
    $chk="";  

    foreach($checkbox1 as $chk1)  
       {  
          $chk .= $chk1.",";  
       }   
    $in_ch=mysqli_query($con,"INSERT INTO tbl_selection (userid, videoid) VALUES ('$user', '$chk');");  
    if($in_ch==1)  
       {  
          echo'<script>alert("Inserted Successfully")</script>';  
       }  
    else  
       {  
          echo'<script>alert("Failed To Insert")</script>';  
       }  
    }  
    ?>  
    </body>  
    </html> 

这是从 mysql 表填充的 html 表单:

 <?php
    connect to database
    ?>
    <div class="control-group">
    <?php
    $query = "SELECT * FROM video";
    $result2 = mysql_query($query);
    while ($line = mysql_fetch_array($result2, MYSQL_ASSOC)) {
    ?>
    <div class="controls"> 
        <label class="checkbox"> 
          <input type="checkbox" name="videoid" value="<?php echo $line[id]?>"><?php echo $line[title]?> 
        </label> 
      </div>
      <?php } ?> 

最佳答案

1) 更改

<input type="checkbox" name="videoid" value="<?php echo $line[id]?>"><?php echo $line['title']?> 

<input type="checkbox" name="videoid[]" value="<?php echo $line[id]?>"><?php echo $line['title']?> 

表示多个复选框。使用name作为array类型。就像videoid[]

2) 使用 forforeach 循环将多个复选框值插入到表中。首先,通过sizeof找出选中的复选框。然后,相应地使用。

更新代码

<?php
$con=mysqli_connect("$host", "$username","$password","$db_name")or die("cannot connect");
$user=$_POST['userid']; 
$videoCheckBox=$_POST['videoid'];  

$checkedVideo = sizeof($videoCheckBox);

for($i=0;$i<$checkedVideo;$i++) {
    $videoId = $videoCheckBox[$i];
    $queryVideo = mysqli_query($con,"INSERT INTO `tbl_selection` (`userid`, `videoid`) VALUES ('$user', '$videoId');");  
}

if($checkedVideo == 0) {
    echo'<script>alert("Failed To Insert")</script>';  
} elseif($queryVideo) {
    echo'<script>alert("Inserted Successfully")</script>';
}

?>  
</body>  
</html> 


<div class="control-group">
    <?php
    $query = "SELECT * FROM video";
    $result2 = mysql_query($query);
    while ($line = mysql_fetch_array($result2, MYSQL_ASSOC)) {
    ?>
    <div class="controls"> 
        <label class="checkbox"> 
            <input type="checkbox" name="videoid[]" value="<?php echo $line['id']?>"><?php echo $line['title']?> 
        </label> 
    </div>
    <?php } ?> 

了解更多信息,请点击Inserting data into mySQL table from mutlidimensional input form

关于php - 从复选框插入 MySQL - foreach 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37229255/

相关文章:

php - 如何在mysql查询的if条件语句中调用子查询

PHP MySQL 登录表单不起作用

php - JS函数只能调用一个方法

mysql - 日期列表和另一个表的交叉连接

MySQL CREATE FUNCTION 语句似乎忽略了 WHERE 条件

php - 我将 key 对象的哪一部分传递到 `openssl_verify` 以验证 Google 签名的 JWT?

php - 一页上有 2 个或更多 ACF WordPress

c# - 从同一列检索多个值的有效方法

mysql - 从脚本更新中的 SQL 语法错误?

php - 数组唯一性有问题