我正在寻找一种简单的解决方案,可以将多个复选框选择插入到单个数据库列中。用户选择方框1,4和6 - 因此数据库将反映“1,4,6”..逗号会很好但不是必需的。如果选中了一个复选框,则信息将按原样插入。如果选择了多个,则只会将最后一个插入到DB中。其他一切工作正常,但这些复选框。我试着用
<?php
if(isset($_POST['mode'])) {
$mode = implode(",", $_POST['mode']);
} else {
$mode = "";
}
?>
<?php
正如另一个人对同一问题提出的建议,尽管这种方法让我在列内部使用“数组”而不是任何数字,无论选择什么。
我试图发布一些图片以便更好地解释,但它不会允许我。我不是SQL或PHP专业人员,只是尽可能多地学习,以便快速获得这个数据库。如果有解决方案,请赐教。
以下是我在提交时使用动作脚本的代码:
<?php
if(isset($_POST['mode'])) {
$mode = implode(",", $_POST['mode']);
} else {
$mode = "";
}
?>
<?php
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Get values from form
$gamename=$_POST['gamename'];
$region=$_POST['region'];
$mode=$_POST['mode'];
$notes=$_POST['notes'];
// Insert data into mysql
$sql="INSERT INTO $tbl_name(gamename, region, mode, notes)VALUES('$gamename', '$region', '$mode', '$notes')";
$result=mysql_query($sql);
// if successfully insert data into database, displays message "Successful".
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='insert.php'>Back to main page</a>";
}
else {
echo "ERROR";
}
?>
<?php
// close connection
mysql_close();
?>
这是我的复选框的代码:
<td><input type="checkbox" name="mode[]" id="mode" value="1" />
mode 1<br />
<input type="checkbox" name="mode[]" id="mode" value="2" />
mode 2<br />
<input type="checkbox" name="mode[]" id="mode" value="3" />
mode 3<br />
<input type="checkbox" name="mode[]" id="mode" value="4" />
mode 4 <br />
<input type="checkbox" name="mode[]" id="mode" value="5" />
mode 5 <br />
<input type="checkbox" name="mode[]" id="mode" value="6" />
mode 6 <br />
<input type="checkbox" name="mode[]" id="mode" value="7" />
mode 7<br />
<input type="checkbox" name="mode[]" id="mode" value="8" />
mode 8
</td>
作为旁注,我应采取哪些措施来确保我的数据库和网站不易受到简单攻击。我计划将这些表格公开用于向数据库公开提交信息。
答案 0 :(得分:-1)
您可以使用以下代码将复选框转换为字符串,其中所选框用逗号分隔。
function checkboxToString($check){
while (list ($key,$val) = @each ($check)) {
$string .= $val.",";
}
return $string;
}
例如:当选中方框1,3和4时,它将返回1,3,4,。是的,它最后添加了一个额外的逗号。您可以使用简单的代码行删除最后一个逗号(可能不是最好的)。只需在最后添加:
$string = substr($string,0,strlen($string)-1);
这将删除字符串的最后一个字符。