我想在同一列的多个列中插入多个复选框值

时间:2019-05-22 22:37:47

标签: php

我的代码将多个选定的值插入到两列中,但是这两列均包含第一个列出(选定)复选框的值。 例如。如果我选择了.Net2和Java3,则两个cloumns都将受到影响,但它们的值均为2。

<form action="" method="post" >  
   <div style="width:200px;border-radius:6px;margin:0px auto">  
<table border="1">  
   <tr>  
      <td colspan="2">Select Technolgy:</td>  
   </tr>  
   <tr>  
      <td>PHP1</td>  
      <td><input type="checkbox" name="techno[]" value="1"></td>  
   </tr>  
   <tr>  
      <td>.Net2</td>  
      <td><input type="checkbox" name="techno[]" value="2"></td>  
   </tr>  
   <tr>  
      <td>Java3</td>  
      <td><input type="checkbox" name="techno[]" value="3"></td>  
   </tr>  
   <tr>  
      <td>Javascript4</td>  
      <td><input type="checkbox" name="techno[]" value="4"></td>  
   </tr>  
   <tr>  
      <td colspan="2" align="center"><input type="submit" value="submit" name="sub"></td>  
   </tr>  
</table>  
</div>  
</form>  
<?php  
if(isset($_POST['sub']))  {  
    $connection = mysqli_connect("localhost", "root", ""); // Establishing Connection with Server
    $db = mysqli_select_db($connection, "ofobms"); // Selecting Database from Server
    // Check connection
    if (!$connection) {
        die("Connection failed: " . mysqli_connect_error());
    }  
$checkbox1=$_POST['techno']; 
//$hobb= $_POST['Hobbies']; 
$chk="";  
foreach($checkbox1 as $chk1)  
   {  
      $chk .= $chk1.",";   
   }  

   $N = count($checkbox1);
   echo("<p>You selected $N techno(s): ");
   for($i=0; $i < $N; $i++)
   {
    $in_ch=mysqli_query($connection,"INSERT INTO order_table (item_ID)
    values ('$chk')"); 
   } 

if($in_ch==2)  
   {  
      echo'<script>alert("Inserted Successfully")</script>';  
   }  
else  
   {  
      echo'<script>alert("Failed To Insert")</script>';  
   }  
}  
  ?>

这就是我当前的表格

| item_ID |
|    2      
|    2

我希望它是这样,第二列的值为3

| item_ID |
|    2      
|    3      

1 个答案:

答案 0 :(得分:0)

您不应串联所有复选框值。每个INSERT查询只需要插入$checkbox的当前元素。您还应该使用准备好的语句来防止SQL注入。

您也不需要两个循环,只需一个循环。

此外,mysqli_query()在执行TRUE查询时返回FALSEINSERT,但我不确定为什么要将它与{{1} }。

2