Массивы на основе форм - PullRequest
0 голосов
/ 02 июня 2011

Я пытаюсь получить доступ к каждому значению в массиве без его сериализации.Я хочу, чтобы эти данные были сохранены в поле datetime в 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 в базе данных, поэтому я пытаюсь выше, чтобы посмотреть, может ли это работать.

Если есть универсальный способ, которым я могу использовать вместо вышеупомянутого, пожалуйста, кто-то может показать мне небольшой пример, из которого я могу работать.

Ответы [ 3 ]

1 голос
/ 02 июня 2011

Из вашего примера я не совсем понимаю, на каком языке вы кодируете, но в 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 () порядок аргументов

Также обратитесь к date () , если вам нужно другое форматирование даты.

0 голосов
/ 02 июня 2011

Попробуйте получить данные из вашего запроса POST:

$collect = $_POST['collect'];
$dd=$collect[0];
$mm=$collect[1];
$yy=$collect[2];
$hh=$collect[3];
$ii=$collect[4];
0 голосов
/ 02 июня 2011

Из того, что вы написали, я предполагаю, что поле формы называется collect[], когда вы пытаетесь получить доступ к его индексам.

Однако вы используете здесь неправильный метод - $_POST - это массив, но вы пытались использовать его как функцию (не то, чтобы это невозможно, но для этой цели - это действительно не способ сделать это).

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

И так до тех пор, пока вы не достигнете последнего элемента вашего массива.

Если вы сохраняете некоторую дату, отправленную пользователем, в MySQL - да, есть лучшие способы сделать это. Если вы хотите узнать, что они из себя представляют, не стесняйтесь комментировать, поэтому я опубликую свои мнения о том, какие существуют лучшие способы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...