mardi 26 septembre 2017

Save datas from multiple checkbox in a database

2 Questions about save datas from a multiple checkbox (I have few of them in my form) in a database with PDO (PHP). I just show the relevant parts of the code to make it more simple for everyone.

A) The code I wrote works (still saving all datas correctly) but it gives me still a failure message, which you can see below. Why, or what can I do better?

B) It saves the checked checkboxes as an array in the database. Later on I want to change datas by get the datas from the database back into my original form - will it make problems, if its saved like an array? If yes, what would you recommend to do then better.

Warning: implode ( ) : Invalid arguments passed on line ... for

$p2 = implode(',',$product_2);
$p3 = implode(',',$product_3);


$p1 = implode(',',$product_1);  which I defined first seems to be fine 


 <?php
        if(isset($_POST['send']))
        {   
            require("php/tconnect.php");




            $id = $_POST['id'];
            $name = $_POST['name'];
            $date = $_POST['date'];
            $p1 = implode(',',$product_1);
            $p2 = implode(',',$product_2);
            $p3 = implode(',',$product_3);



            $sql = "INSERT INTO database (id, name, date) VALUES (:id, :name, :date, '$p1', '$p2', '$p3')";
            $stmt = $dbh->prepare($sql);
            $stmt->bindValue(':id', $id);
            $stmt->bindValue(':name', $name);
            $stmt->bindValue(':date', $date);

            $stmt->execute();

            echo "Datas saved";

        }?>`


HTML

<input type="checkbox" name="product_1[]" value="apple" id="product_1_apple"  >
                    Apple </label>
                    <label class="checkbox-inline" >
                    <input type="checkbox" name="product_1[]" value="Banana" id="product_1_banana" >
                    Banana </label>
                    ...

and the next tables looks similar

<input type="checkbox" name="product_2[]" value="water" id="product_2_water"  >
                        Water </label>
                        <label class="checkbox-inline" >
                        <input type="checkbox" name="product_2[]" value="juice" id="product_2_juice" >
                        Juice </label>




Aucun commentaire:

Enregistrer un commentaire