[英]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.