在数据库中插入checked的所有值

时间:2015-01-11 18:13:52

标签: php html mysql phpmyadmin

我创建了很多复选框。例如:

<input type="checkbox" name="chk_group[]" value="Pharmacist" /><span class="kassem">Pharmacist </span>
<input type="checkbox" name="chk_group[]" value="Police Officer" /><span class="kassem">Police Officer </span>
<input type="checkbox" name="chk_group[]" value="Pottery" /><span class="kassem">Pottery </span>
<input type="checkbox" name="chk_group[]" value="Programming" /><span class="kassem">Programming </span>
<input type="checkbox" name="chk_group[]" value="Puzzles" /><span class="kassem">Puzzles </span>
<input type="checkbox" name="chk_group[]" value="Psychologist" /><span class="kassem">Psychologist </span>

知道允许用户检查他想要的数量。知道我知道如何使用PHP回显检查的复选框。但是我想知道如何将它连接到phpmyadmin中数据库中的一行?嗯,我知道如何,但数据库只插入最后一个已检查元素的值!我希望它能插入所有已检查的元素吗?
这是PHP:

<input type="submit" name="submit" value="Accept" class="hassan" /><br /><br />
<?php
include "db.php";
$id = $_SESSION['user_id'];
if (isset($_POST['submit'])) {
    $optionArray = $_POST['chk_group'];
    for ($i=0; $i<count($optionArray); $i++) {
        echo "<div>" ."<span class='kassem'>" . $optionArray[$i]."<br />" . "<br />" . "</span>". "</div>";
			$hobby = $optionArray[$i];
			$sql = "UPDATE `login1` SET `hobby`='$hobby' WHERE `ID`='$id'";
			$res=mysql_query($sql);
			if($res) {
			  echo "connected";
			  } else {
			  echo "bad";
			}
		}
			
    }

?>

1 个答案:

答案 0 :(得分:0)

您正在记录与记录其余部分相同的表中的列中的爱好值。这只能保留一个值。

您应该规范化数据库。

再创建两个表。

  • 一个用于保存hobby的所有可能值(以及主键的id列)
  • 一个junction table,其中两列是hobby表和login1表上的外键。

然后在联结表中为每个选中的复选框插入一个新条目。