PHP : insert multiple check boxes values into one MySQL column

前端 未结 5 1889
余生分开走
余生分开走 2020-12-14 13:30

I want to write a simple PHP function to insert values of 10 and 20 check boxes. Now, the issue is: should I insert all values in a single column of MySQL table or should I

相关标签:
5条回答
  • 2020-12-14 13:50

    Please you try this

    <?php
    if(isset($_POST['submit']))
    {
    //in here you get games array
       $mygames = $_POST['games'];  
    }
    
    ?>
    
    
    <form method="post" action="">
    Games You Like: <br/>
    <input type="checkbox" name="games[]" value="1"><label>Football</label><br>
    <input type="checkbox" name="games[]" value="2"><label>Basket Ball</label><br>
    <input type="checkbox" name="games[]" value="3"><label>Pool</label><br>
    <input type="checkbox" name="games[]" value="4"><label>Rugby</label><br>
    <input type="checkbox" name="games[]" value="5"><label>Tennis</label><br>
    <input type="checkbox" name="games[]" value="6"><label>Cricket</label><br>
    <input type="checkbox" name="games[]" value="7"><label>Table Tennis</label><br>
    <input type="checkbox" name="games[]" value="8"><label>Hockey</label><br>
    <input type="submit" name="submit" value="submit">
    </form>
    
    0 讨论(0)
  • 2020-12-14 13:56

    I put the game name into the brackets and changed their values to true:

    <form method="post" action="">
    Games You Like: <br/>
    <input type="checkbox" name="games[Football]" value="true"><label>Football</label><br>
    <input type="checkbox" name="games[Basket]" value="true"><label>Basket Ball</label><br>
    <input type="checkbox" name="games[Pool]" value="true"><label>Pool</label><br>
    <input type="checkbox" name="games[Rugby]" value="true"><label>Rugby</label><br>
    <input type="checkbox" name="games[Tennis]" value="true"><label>Tennis</label><br>
    <input type="checkbox" name="games[Cricket]" value="true"><label>Cricket</label><br>
    <input type="checkbox" name="games[Table]" value="true"><label>Table Tennis</label><br>
    <input type="checkbox" name="games[Hockey]" value="true"><label>Hockey</label><br>
    <input type="submit" name="submit" value="submit">
    </form>
    

    After submission this will result in an array like this:

    $_POST["games"] = Array ( [Tennis] => true [Cricket] => true [Table] => true ) 
    // all other values false
    

    You can easily store and later manipulate this array if you store it as an JSON string in your database. For that you need a single varchar or text column.

    json_encode($_POST["games"])
    // {"Tennis":"true","Cricket":"true","Table":"true"}
    
    0 讨论(0)
  • 2020-12-14 14:02

    use implode function to convert returned array into a string an then insert it into database as normal

    if(isset($_POST['submit'])){
       $result = implode(",",$_POST['games']);
    

    }

    hopefully this will help you. Regards Imran Qasim

    0 讨论(0)
  • 2020-12-14 14:06

    Try this whole example,

    Table Structure

    CREATE TABLE IF NOT EXISTS `games` (
      `id` int(12) NOT NULL AUTO_INCREMENT,
      `game_name` varchar(255) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
    
    <?php
    include_once("yourconfig.php"); //include your db config file
    extract($_POST);
    $check_exist_qry="select * from games";
    $run_qry=mysql_query($check_exist_qry);
    $total_found=mysql_num_rows($run_qry);
    if($total_found >0)
    {
        $my_value=mysql_fetch_assoc($run_qry);
        $my_stored_game=explode(',',$my_value['game_name']);
    }
    
    if(isset($submit))
    {
        $all_game_value = implode(",",$_POST['games']);
        if($total_found >0)
        {
            //update
            $upd_qry="UPDATE games SET game_name='".$all_game_value."'";
            mysql_query($upd_qry);
    
        }
        else
        {
            //insert
            $ins_qry="INSERT INTO games(game_name) VALUES('".$all_game_value."')";
            mysql_query($ins_qry);
        }
    }
    
    ?>
    <form method="post" action="">
    Games You Like: <br/>
        <input type="checkbox" name="games[]" value="1" <?php if(in_array(1,$my_stored_game)){echo "checked";}?>><label>Football</label><br>
        <input type="checkbox" name="games[]" value="2" <?php if(in_array(2,$my_stored_game)){echo "checked";}?>><label>Basket Ball</label><br>
        <input type="checkbox" name="games[]" value="3" <?php if(in_array(3,$my_stored_game)){echo "checked";}?>><label>Pool</label><br>
        <input type="checkbox" name="games[]" value="4" <?php if(in_array(4,$my_stored_game)){echo "checked";}?>><label>Rugby</label><br>
        <input type="checkbox" name="games[]" value="5" <?php if(in_array(5,$my_stored_game)){echo "checked";}?>><label>Tennis</label><br>
        <input type="checkbox" name="games[]" value="6" <?php if(in_array(6,$my_stored_game)){echo "checked";}?>><label>Cricket</label><br>
        <input type="checkbox" name="games[]" value="7" <?php if(in_array(7,$my_stored_game)){echo "checked";}?>><label>Table Tennis</label><br>
        <input type="checkbox" name="games[]" value="8" <?php if(in_array(8,$my_stored_game)){echo "checked";}?>><label>Hockey</label><br>
        <input type="submit" name="submit" value="submit">
    </form>
    

    this is just basic example and query i have added in this example, you can learn from this basic example and i think this is very useful for you... if useful than give correct answer for this solution

    Db Table Stored Output

    Form Output

    0 讨论(0)
  • 2020-12-14 14:12

    Firstly very straight to point, I prefer doing names like this from different checkboxes

    BasketBall;Cricket;Tennis
    

    You can do that by

    implode(";",$array);
    

    and then write that in mySQL table...

    To get those values Just use

    $array = explode(";",$urVariable);
    

    For different values use

    numberOne = $array[1]; // returns Cricket
    

    to change any value use Just get the values and rewrite in ";" form..

    I like this as it is simple to implement and do job perfectly!

    0 讨论(0)
提交回复
热议问题