2011-06-02 73 views
0

我试图访问数组中的每个值而无需序列化它。 我希望将这些数据存储到MySQL的日期时间字段中。 从我的表单收到数据[collect] => Array ([0] => 01 [1] => 06 [2] => 2011 [3] => 17 [4] => 41)基于窗体的阵列

如何将此数组数据存储到我的数据库'datetime'字段列中?

$dd=$_POST('$collect[0]'); 
$mm=$_POST('$collect[1]'); 
$yy=$_POST('$collect[2]'); 
$hh=$_POST('$collect[3]'); 
$ii=$_POST('$collect[4]'); 
$ddate = ('$yy','$mm','$dd',NULL,'$hh','$ii',NULL) 

我尝试上面做的是采取每个数组值并将其存储在变量名,比使用变量$ ddate存储在我的数据库中的日期时间。我不知道这是甚至可能,但我已经尝试序列化,但日期不会插入到数据库只显示格式0000/00/00 00:00数据库,所以我想上面看看这是否可以工作。

如果有一个通用的方法可以用来代替上述,请有人给我看一个我能工作的小例子。

+0

代码造型是为了......你知道的,更容易阅读和理解。如果你必须要求某人查看你的代码,比如......你知道。StackOverflow – mkilmanas 2011-06-02 14:08:46

回答

0

从你写的内容来看,我假设表单字段被称为collect[]看到你正试图访问它的索引。

但是,您在这里使用了错误的方法 - $_POST是一个数组,但您试图将其用作函数(并非这不可能,但为此目的 - 实际上不是这样做的)。

$dd = $_POST['collect'][0]; 
$mm = $_POST['collect'][1]; 

依此类推,直到达到阵列的最后一个元素。

如果你正在存储一些用户提交的日期到MySQL - 是的,有更好的方法来做到这一点。如果你想知道他们是什么,请随时发表评论,所以我会发表我的看法,以更好的方式存在。

0

尝试使用此方法获取数据出你的POST请求:

$collect = $_POST['collect']; 
$dd=$collect[0]; 
$mm=$collect[1]; 
$yy=$collect[2]; 
$hh=$collect[3]; 
$ii=$collect[4]; 
1

从你的例子,我真的不明白你是什么编码语言,但在PHP它会是这样:

$time = mktime(
    $_POST['collect'][3], 
    $_POST['collect'][4], 
    0, 
    $_POST['collect'][1], 
    $_POST['collect'][0], 
    $_POST['collect'][2], 
); 

$datetime = date('Y-m-d H:i:s', $time); 

请参考mktime() documentation为参数

同样的顺序,请参阅date()如果你需要的日期的另一格式。