将日期数组插入MySQL

时间:2014-01-03 23:48:06

标签: php mysql

我正在为公司编写一种简单的注册表格,供员工选择可用于工作的日期。当用户选择多个日期时我遇到了麻烦,它在数据库中写了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。 我希望看到复选框的每个选项都有自己的行。

我怎样才能做到这一点?

2 个答案:

答案 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_metahttp://codex.wordpress.org/Function_Reference/get_user_meta

使用基于用户ID的user_meta表