почему только 1 флажок значения массива вставлены в таблицу - PullRequest
0 голосов
/ 17 мая 2019

Мне удалось вставить данные массива флажков в базу данных. проблема в том, что, когда я устанавливаю несколько флажков, в базу данных вставляются только первые данные в массиве. Мне нужно, когда я отмечаю несколько флажков, все данные, которые у меня есть, проверяют, вставляют в базу данных. Кто-нибудь может мне помочь? Pleasee!

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 голосов
/ 17 мая 2019

Ваш php-код 2 правильный, однако проблема заключается в ваших флажках

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

Ваши флажки здесь содержат одинаковое значение повсюду, может быть, вы должны сделать value="$row6["data"] что-то подобное?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...