【问题标题】:PHP : insert multiple check boxes values into one MySQL columnPHP:将多个复选框值插入一个 MySQL 列
【发布时间】:2015-02-19 03:29:44
【问题描述】:

我想编写一个简单的 PHP 函数来插入值 10 和 20 的复选框。现在,问题是:我应该在 MySQL 表的单个列中插入所有值还是应该使用单独的表?

我的主要目标是将多个复选框的值插入 MySQL,然后更新它们。如果我选中了 7 个复选框,一段时间后我想从 7 更新到 5,它将如何从表列中删除值?

请帮助我一些简单的 PHP 示例以及我应该添加什么类型的 MySQL 字段,因为我想插入应该在数字中的复选框值和在其他字段中的复选框标签。

这是我的 HTML

<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>

【问题讨论】:

    标签: javascript php jquery mysql checkbox


    【解决方案1】:

    使用 implode 函数将返回的数组转换为字符串,然后正常插入到数据库中

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

    }

    希望这会对您有所帮助。 问候 伊姆兰·卡西姆

    【讨论】:

      【解决方案2】:

      我把游戏名放在括号里,把它们的值改成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>
      

      提交后会产生这样的数组:

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

      如果您将其作为 JSON 字符串存储在数据库中,您可以轻松地存储并在以后操作该数组。为此,您需要一个 varchar 或 text 列。

      json_encode($_POST["games"])
      // {"Tennis":"true","Cricket":"true","Table":"true"}
      

      【讨论】:

        【解决方案3】:

        试试这个完整的例子,

        表结构

        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>
        

        这只是我在此示例中添加的基本示例和查询,您可以从这个基本示例中学习,我认为这对您非常有用...如果有用,而不是为此解决方案提供正确答案

        【讨论】:

        • HTML、CSS、JavaScript等可在本页面运行的代码请仅使用代码sn-ps。
        【解决方案4】:

        请你试试这个

        <?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>
        

        【讨论】:

          【解决方案5】:

          首先非常直截了当,我更喜欢在不同的复选框中使用这样的名称

          BasketBall;Cricket;Tennis
          

          你可以这样做

          implode(";",$array);
          

          然后将其写入 mySQL 表中...

          要获得这些值只需使用

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

          对于不同的值使用

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

          要更改任何值,只需获取值并在“;”中重写形式..

          我喜欢这个,因为它很容易实现并且可以完美地完成工作!

          【讨论】:

            猜你喜欢
            • 2014-10-31
            • 2011-09-06
            • 2012-08-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-11-07
            • 2015-07-07
            • 2017-02-15
            相关资源
            最近更新 更多