使用多重复选框将具有相同ID的各种项目添加到表中

时间:2012-04-08 11:57:08

标签: php mysql

我有一个包含主题列表的复选框。我的用户注册后,他们可以选择一个主题列表,然后将其放入表格中。目前我有代码找到他们的member_id并将其添加到表中。但我不确定如何处理用户选择的主题,然后将其添加到用户member_id的兴趣表中。

我知道我需要使用for循环来处理member_id和topic_id,并将每个选择添加到表中。但我不知道该怎么做。这是我的代码。

这是我的表格

</form>
            <form method="post" action="topic.php">
            <input type="checkbox" name="topic[]" value="1"> artificial intelligance
            <input type="checkbox" name="topic[]" value="2"> computer graphics
            <input type="checkbox" name="topic[]" value="3"> computer animation
            <input type="submit" name="submit" value="submit topic">
</form>

这两个找到member_id和topic_id

//查找会员ID

$query = "SELECT member_id FROM member where username = '$un'";
$result = mysql_query($query) or die ("query failed: " . mysql_error());        
    $row = mysql_fetch_array($result, MYSQL_ASSOC);
    $username=$row['member_id'];

//find the topic id 
$query = "SELECT topic_id FROM topic WHERE topic_name ='$interest'";
    $result = mysql_query($query) or die ("query failed: " . mysql_error());        
    $row = mysql_fetch_array($result, MYSQL_ASSOC);
    $topic_id=$row['topic_id'];

1 个答案:

答案 0 :(得分:1)

你可以这样做

假设

一个。会员ID为整数

B中。表是像这样创建的

CREATE TABLE IF NOT EXISTS `selectedtopic` (
  `selectedID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `memberID` int(11) NOT NULL,
  `topicID` int(11) NOT NULL,
  `selectedStatus` tinyint(4) NOT NULL,
  PRIMARY KEY (`selectedID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

示例代码

$sql = "INSERT INTO  `stackoverflow`.`selectedtopic` (
`selectedID` ,
`memberID` ,
`topicID` ,
`selectedStatus`
)
VALUES (
NULL ,  '%d',  '%d',  '%d');" ;

foreach($_POST['topic'] as $selected)
{
    mysql_query(sprintf($sql,$username,$selected,1)) ;
}

如果您需要更多帮助,请告诉我