将复选框值插入到具有不同列的mysql数据库中

时间:2014-07-04 07:22:05

标签: php checkbox

到目前为止,我已经尝试并实现了此代码。我想用不同的列插入复选框值,以便我了解他们如何使用Tablet,Pc,Labtop 查看我的代码并指导我。

<form name="f1" action="simple.php" method="post"/>
Name:<input type="text" name="name" value=""/><br/>
Are you having <input type="checkbox" name="check[]" value="pc"/>pc &nbsp&nbsp;
                <input type="checkbox" name="check[]" value="tablet" />Tablet
                 <input type="checkbox" name="check[]" value="ios" />Ios
                 <input type="submit" name="submit" value="submit"/>
</form>

if(isset($_POST['submit']))
{
$name=$_POST['name'];
$check=$_POST['check'];
echo $name."<br/>";
echo $check."<br/>";
print_r($check);
         $i=0; 
         $val='';
            foreach($check as $a)
                {

                       $val.=$a[$i]; 

                       $query=mysql_query("INSERT INTO carrying (name,pc,tablet,ios) VALUES ('".$name."','".$check[$i]."')");
                     //  mysql_query($query);
                $i++;  
                } 
}

在数据库专栏中,我创建了这样的内容,我只想要这样的格式:

---------------------------------        
|cid | name | pc  | tablet | ios|
---------------------------------
|1   |kodi  | pc  | tablet      |
---------------------------------
|2   |siva  | pc  |             |
---------------------------------

1 个答案:

答案 0 :(得分:0)

如果你想保持这样的数据库结构 - 应该是:

$pc = null;
if (array_search('pc', $check) !== false) {
    $pc = 'pc';
}
$tablet = null;
if (array_search('tablet', $check) !== false) {
    $tablet = 'tablet';
}
$ios = null;
if (array_search('ios', $check) !== false) {
    $ios = 'ios';
}

$query = mysql_query("INSERT INTO carrying (name, pc, tablet, ios) VALUES ('".$name."','".$pc."','".$tablet."','".$ios."')");

在SQL注入方面,代码存在一些问题。如果你没有使用PHP框架,你应该考虑至少使用像PEAR这样的数据库抽象层,以便你可以做这样的事情(来自http://pear.php.net/manual/en/package.database.db.db-common.execute.php):

$sth = $db->prepare('INSERT INTO numbers VALUES (?, ?, ?)');

$data = array(1, 'one', 'en');
$db->execute($sth, $data);