2012-03-25 118 views
0

我有喜歡theese一些產生輸入字段的一種形式:PHP添加具有相同的名稱輸入到MySQL

<input value="March" name="month[March]" type="hidden"> 
<input value="April" name="month[April]" type="hidden"> 
<input value="May" name="month[May]" type="hidden"> 

我需要從每個輸入到MySQL添加數據,但我不`噸懂得,如果他們有名字[monthname]。表結構是id,name和month_name。所以我需要將輸入數據添加到month_name列。謝謝!

+1

什麼是數據庫結構拆呢? – MichaelRushton 2012-03-25 07:05:27

+0

請增加更多的理解 – 2012-03-25 07:08:24

+0

投票結束,因爲太局部化。你在這裏有兩個問題:一個關於重複的GET或POST變量名,另一個關於插入到MySQL中。 – 2012-03-25 07:12:15

回答

1

您可以用這種方式

foreach($_POST['month'] as $value) { 
    echo $value; 
    //Use the value in the query, it gets April March may, one by one 
} 

P.S迭代具有相同名稱不同的輸入:假設你正在使用POST方法提交表單。

0
<input value="March" name="month[March]" type="hidden"> 
<input value="April" name="month[April]" type="hidden"> 
<input value="May" name="month[May]" type="hidden"> 

您可以將它們添加用逗號隔開(或任何其他分隔符,只要其不創建SQL注入)。像

<?php 
$months = $_REQUEST['month']; 
$sql = "INSERT INTO `YOURTABLE` values ('$id','$name','"; 
$comma_flag = false; 
foreach ($months as $month) 
{ 
    $sql = $sql.($comma_flag?",":"").$month; 
    $comma_flag = true; 
} 
$sql .="');"; 
$dbc = mysql('localhost','username','password'); 
mysql_select_db('your_database',$dbc); 
mysql_query($sql,$dbc); 
?> 

注:MySQL的列month_name必須是大尺寸的varchar

如果你以後要中檢索,之後「SELECT FROM ...」您可以使用

$months = explode($result,","); 
+0

示例代碼容易受到[SQL注入](http://unixwiz.net/techtips/sql-injection.html)的影響,這是一個非常嚴重的[安全風險](http:// bobby-tables.com/)。而且,mysql的擴展已經過時,並且正在被棄用。新代碼應該使用mysqli或PDO,它們都具有重要的優點,例如支持預處理語句。準備好的語句參數不容易被注入。 – outis 2012-03-30 07:32:39

相關問題