0

トピックのリストがあるチェックボックスがあります。私のユーザーが登録した後、彼らはトピックのリストを選択することができ、それは次にテーブルに入れられます。現時点では、member_idを見つけてテーブルに追加するためのコードがあります。しかし、ユーザーが選択したトピックを処理し、それをユーザーのmember_idを使用してインタレストテーブルに追加する方法がわかりません。

member_idとtopic_idを処理し、選択したそれぞれをテーブルに追加するには、forループを使用する必要があることを知っています。しかし、これを行う方法がわかりません。これが私のコードです。

これは私のフォーム

</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>

これらの2つは、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'];
4

1 に答える 1

1

あなたはこれを行うことができます

仮定

A.メンバー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)) ;
}

さらに助けが必要な場合は私に知らせてください

于 2012-04-08T14:06:04.677 に答える