[英]Multiple dropdown values inserting in a single row not in multiple row
在此代码中,当我从下拉列表中选择多个值时,它会在一行中存储,但我想在每行中应用值,所以请任何人帮助我。 实际结果:
id game
1. cricket,football,tennis
期待结果:
id game
1 cricket
2 football
代码 -
<html>
<body>
<?php
if(isset($_POST['submit']))
{
$query=mysql_connect('localhost','root','');
mysql_select_db("freeze",$query);
$choice=$_POST['game'];
$choice1=implode(',',$choice);
mysql_query("insert into tb values('','$choice1')");
}
?>
<form method="post" action="multipleselect.php">
Select your favourite game:<br/>
<select name="game[]" multiple="multiple">
<option>Football</option>
<option>Volleyball</option>
<option>Badminton</option>
<option>Cricket</option>
<option>Cricket1</option>
<option>Cricket2</option>
<option>Cricket3</option>
<option>Cricket34</option>
</select>
<input type="submit" name="submit">
</form>
</body>
</html>
首先,请不要使用mysql_*
因为它已被弃用,请改用mysqli_
或PDO
。
现在,如果您只想要选项的值,那么就这样做
<select name="game[]" multiple="multiple">
<option value="1">Football</option>
<option value="2">Volleyball</option>
...
</select>
这样它会给你1,2,....
希望这就是你要找的东西。
如果你正在寻找像这样的查询
INSERT INTO tb (`game`) VALUES ('Football'),('Volleyball')
假设id
字段是自动递增的,那么更改代码如下:
HTML代码
<select name="game[]" multiple="multiple">
<option>Football</option>
<option>Volleyball</option>
...
</select>
PHP代码
$choice=$_POST['game'];
$sql = "INSERT INTO tb (`game`) VALUES ";
$sqlValues= null;
foreach($choice as $ch) {
$sqlValues .= "('$ch')," ;
}
$sql.=rtrim($sqlValues, ",");
echo $sql;
这样你就可以得到
id game
1 cricket
2 football
它将它们全部插入一行,因为你正在破坏你的$_POST['game']
$choice=$_POST['game'];
$choice1=implode(',',$choice);
mysql_query("insert into tb values('','$choice1')");
你需要遍历每个$_POST['game']
值
foreach($_POST['game'] as $choice){
mysql_query("insert into tb values('','$choice')");
}
请注意,您的查询对SQL注入是开放的,请确保在插入数据库之前清理数据。 此外,不推荐使用mysql_*
,因此您应该更新到mysqli
或PDO
- http://php.net/manual/en/mysqlinfo.api.choosing.php
是否显示任何错误消息? 在mysql_query语句之前插入以下代码:
echo "insert into tb values('','$choice1')";
什么是显示?
<?php
if(isset($_POST['submit']))
{
$query=mysql_connect('localhost','root','');
mysql_select_db("freeze",$query);
$choice=$_POST['game'];
$choice1=implode(',',$choice);
foreach($choice1 as $choice)
{
mysql_query("insert into tb values('','$choice')");
}
}
?>
您只需尝试此代码,我希望它适合您。 如果没有,请回复我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.