为什么只将1个数组的复选框值插入表

时间:2019-05-17 03:30:20

标签: php checkbox

我设法将我的复选框数组数据插入数据库。问题是当我选中多个复选框时,只有数组中的第一个数据插入数据库中。当我选中多个复选框时,我需要将所有选中的数据插入数据库。有人可以帮助我吗?拜托!

php代码1:

 <?php
  include ('connect.php');

   $sql = "SELECT cat_id,name,gender,health_status,neutered,breed,color,age FROM cat WHERE owner_fk = '$id'";
  $result3 = mysqli_query($conn,$sql);
  $row6 = mysqli_fetch_array($result3);
  $cato = $row6['cat_id'];
  $result = $conn-> query($sql);

 if ($result-> num_rows > 0) {
 while ($row6 = $result-> fetch_assoc()) {

    //table code//

   echo "<td>" ."<input type='checkbox'  name= 'check[]' value='$cato'". "</td>";
   echo "</tr>";
 }
   echo "</table>";
}
 else{
 echo "0 result";
}
  $conn-> close();

 ?>

php代码2:

<?php

 include ('connect.php');

$cat = implode(',', $_POST['check']);

if(isset($_POST['submit']))
{

for($i=0; $i<count($cat);$i++)
{
    $p_id =$_GET ['sitter'];
    $price = $_POST ['price'];
    $pickup_date =$_POST ['pickup_date'];
    $dropoff_date =$_POST ['dropoff_date'];
    $numdays = $_POST ['numdays'];
    $total =$_POST ['test'];

    $sql2 = "INSERT INTO cat_sitter(sitter_fk,cat_fk, price, date_in, date_out,total_day, total)VALUES ('$p_id','" . $cat[$i] . "','$price','$pickup_date','$dropoff_date','$numdays', '$total')" or die ("Error inserting data into table");

    if ($conn->query($sql2) === TRUE) {
        echo "<script language='javascript'>alert('Succesfully Book.')
            window.location.replace(\"book_page.php\");
        </script>";
    }else{

        echo "error: " . $sql2 . "<br>" . $conn->error;
     }
     }
   }
 ?>

我真的需要将所有检查过的数据插入数据库。

1 个答案:

答案 0 :(得分:-1)

您的php代码2是正确的,但是问题出在您的复选框中

while ($row6 = $result-> fetch_assoc()) {
   echo "<td>" ."<input type='checkbox'  name= 'check[]' value='$cato'". "</td>";
   echo "</tr>";
 }

您此处的复选框在整个过程中都包含相同的值,也许您应该这样做value="$row6["data"]