Php 多个下拉列表值插入一行而不是多行
在这段代码中,当我从下拉列表中选择多个值时,它会在一行中显示,但我喜欢在每行中应用值,所以请任何人帮助我。 实际结果:Php 多个下拉列表值插入一行而不是多行,php,javascript,mysql,Php,Javascript,Mysql,在这段代码中,当我从下拉列表中选择多个值时,它会在一行中显示,但我喜欢在每行中应用值,所以请任何人帮助我。 实际结果: id game 1. cricket,football,tennis 预期结果: id game 1 cricket 2 football 代码- <html> <body> &l
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_查询语句之前插入以下代码:
echo "insert into tb values('','$choice1')";
正在显示什么?是否显示任何错误消息?在mysql_查询语句之前插入以下代码:
echo "insert into tb values('','$choice1')";
正在显示什么?首先,请不要使用mysql,因为它已被弃用,请使用mysqli或PDO 现在,如果您只需要选项的值,那么就这样做
<select name="game[]" multiple="multiple">
<option value="1">Football</option>
<option value="2">Volleyball</option>
...
</select>
假设id字段是自动递增的,则按如下方式更改代码:
html代码
这样你就可以
首先,请不要使用mysql,因为它已被弃用,请改用mysqli或PDO 现在,如果您只需要选项的值,那么就这样做
<select name="game[]" multiple="multiple">
<option value="1">Football</option>
<option value="2">Volleyball</option>
...
</select>
假设id字段是自动递增的,则按如下方式更改代码:
html代码
这样你就可以
它将它们全部插入到一行中,因为您正在内爆您的$\u POST['game'] 您需要在每个$u POST['game']值上循环
注意,您的查询对SQL注入是开放的,请确保在插入数据库之前对数据进行清理。此外,mysql_*已被弃用,因此您应该更新到mysqli或PDO-因为您正在内爆您的$POST['game'] 您需要在每个$u POST['game']值上循环 注意,您的查询对SQL注入是开放的,请确保在插入数据库之前对数据进行清理。此外,mysql_*已弃用,因此您应该更新到mysqli或PDO- 你只要试试这个代码,我希望它对你有用。如果没有,请回复我 你只要试试这个代码,我希望它对你有用。如果没有,请回复我。$choice1=内爆',',$choice;在这里,内爆将把数组$choice更改为字符串,并且不能将foreach$choice1作为$choice运行。所以这里不需要内爆…$choice1=内爆',',$choice;在这里,内爆将把数组$choice更改为字符串,并且不能将foreach$choice1作为$choice运行。所以你不需要在这里内爆。。。
$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
$choice=$_POST['game'];
$choice1=implode(',',$choice);
mysql_query("insert into tb values('','$choice1')");
foreach($_POST['game'] as $choice){
mysql_query("insert into tb values('','$choice')");
}
<?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')");
}
}
?>