我正在为公司编写一种简单的注册表格,供员工选择可用于工作的日期。当用户选择多个日期时我遇到了麻烦,它在数据库中写了0000-00-00。我希望它能记录两个日期。
这是我的基本表单代码:
<form method="post" action="action.php">
<input name="UserID" type="hidden" value="3">
<input type="checkbox" name="Datum[]" value="2014-01-04">4 january
<input type="checkbox" name="Datum[]" value="2014-01-06">6 january
<input name="submit" type="submit" />
</form>
我的action.php看起来像这样:
<?php
include("config.php");
$UserID=$_POST['UserID'];
$Datum=$_POST['Datum'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Test</title>
</head>
<body>
<?php
$res = mysql_query("insert into workingdays (UserID, Datum)
values ('$UserID', '" . implode(',', $_POST['Datum']) ."')");
if(!$res){
echo "Error! <a href='/mysql'>Go back.</a>";
}
else {
echo "Succesful. <a href='/mysql'>Go back.</a>";
}
?>
</body>
</html>
我使用两张桌子。
wp_users (实际的wordpress表):
ID | display_name |电子邮件
workingdays :
ID |用户ID |日期
加入'workingdays'的UserID和wp_users的ID。 我希望看到复选框的每个选项都有自己的行。
我怎样才能做到这一点?
答案 0 :(得分:0)
首先预告$ _POST ['Datum']然后mysql插入。
foreach ($_POST['Datum'] as $date){
$res = mysql_query("insert into workingdays (UserID, Date)
values ('$UserID', '$date')");
if(!$res){
echo "Error! <a href='/mysql'>Go back.</a>";
}
else {
echo "Succesful. <a href='/mysql'>Go back.</a>";
}
}
我希望这就是你的意思..
答案 1 :(得分:0)
如果每个用户只有几个字段,请使用http://codex.wordpress.org/Function_Reference/update_user_meta和http://codex.wordpress.org/Function_Reference/get_user_meta
使用基于用户ID的user_meta表