【问题标题】:Inserting checkbox values into mysql database with different column将复选框值插入具有不同列的mysql数据库
【发布时间】:2014-07-04 16:43:23
【问题描述】:

到目前为止,我已经尝试并实现了这段代码。我想用不同的列插入复选框值,这样我就知道他们是如何拥有 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  |             |
---------------------------------

【问题讨论】:

  • 我的问题大家都清楚了吗

标签: php checkbox


【解决方案1】:

如果您想保持这样的数据库结构 - 它可能应该是:

$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);

【讨论】:

  • foreach($check as $a) { $pc = null; if (array_search('pc', $check) !== false) { $pc = 'pc'; } $平板电脑=空; if (array_search('tablet', $check) !== false) { $tablet = 'tablet'; } $ios = 空; if (array_search('ios', $check) !== false) { $ios = 'ios'; } $query = mysql_query("INSERT INTO 携带 (name, pc, tablet, ios) VALUES ('".$name."','".$pc."','".$tablet."','" .$ios."')"); }谢谢你的回复,我已经实现了array_search,它工作正常,但是我们如何在普通的 php 和 mysql 中为具有不同列的复选框处理这种类型的要求
  • 这个/将/保存到数据库中,不同的复选框会导致不同的列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-19
  • 1970-01-01
  • 2022-01-26
相关资源
最近更新 更多