0

私はこれを行う方法を調べましたが、私はそれを正しく理解できないようです。月、日、年を1つの日付にまとめて、mysqlデータベースに挿入する方法を教えてください。私の問題は、実際にデータベースに情報を送信することではありません。私の問題は、3つの別々のフィールド(月、日、年)をデータベースに送信していることです。おすすめのコードをどこに置くかを正確に教えてください。これが私のコードです:

<?php
function register_user($register_data) {
array_walk($register_data, 'array_sanitize');

$fields = '`' . implode('`, `', array_keys($register_data)) . '`';
$data = '\'' . implode('\', \'', $register_data) . '\'';

mysql_query("INSER INTO `users` ($fields) VALUES ($data)");
}
?>

<form action="" method="post">
    <ul>
        <li>
            <select name="month">
                <option value="01">January</option>
                //all the other month options
            </select>
            <select name="day">
                <option value="01">1</option>
                //all the other days
            </select
            <select name="year">
                <option value="2013">2013</option>
                //more year options
            </select>
        </li>    
        <li>
    <input type="submit" name="registrationform" value="Sign up">
    </li>
    </ul>
</form>

<?php
if (empty($_POST) === false && empty($errors) === true){
    $register_data = array(
        'Month'     => $_POST['month'],
        'Day'       => $_POST['day'],
        'Year'      => $_POST['year']
    );

    register_user($register_data);
    //redirect
    exit();
?>
4

5 に答える 5

0

MySQLの誕生日列をDATEまたはDATETIMEフィールドにして、次のように挿入します。

$_POST['year'] . "-" . $_POST['month'] . "-" . $_POST['day']
于 2013-01-07T17:50:52.897 に答える
0

年、月、日(この順序で)を取り、それぞれの間にハイフン(ASCII文字#45)を配置します。そしてそれだけです。

年には4つの数字、月には2つの数字、日には2つの数字があることに注意してください(これらの数字は数字とも呼ばれます)。

次の例のように結果が表示されることが重要です。

October 3rd 2011    :=    2011-10-03
1st Feb '13         :=    2013-02-01

また、31のように存在しない日付がないように注意してください。11月など。

と:

mysql_*新しいコードで関数を使用しないでください。それらはもはや維持されておらず、公式に非推奨になっています。赤いボックスがか?代わりにプリペアドステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事はどちらを決定するのに役立ちます。PDOを選択した場合は、ここに優れたチュートリアルがあります。

于 2013-01-07T17:51:22.117 に答える
0

誕生日フィールドを次のように連結します。

$birthday = $_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['day'];

次に、それを挿入できます。

mysql_query("INSERT INTO users (birthday) VALUES ('" . $birthday . "')");
于 2013-01-07T17:51:43.803 に答える
0

あなたには多くの方法があります..

intそれらをタイプ..のデータベース内の3つの異なるフィールドに分割できます。

また

このフィールドを日付として使用できます

CREATE TABLE `date` (
  `dp_date` date NOT NULL default '0000-00-00',
) ;

$query_manual = "INSERT INTO date(dp_date)
VALUES ($_POST['year']-$_POST['month']-$_POST['day']')";
于 2013-01-07T17:52:27.550 に答える
0
<?php
function register_user($register_data) {
$register_data['birthday'] = $register_data['year'] . '-' . $register_data['month'] . '-' . $register_data['day'];
unset($register_data['year']);
unset($register_data['month']);
unset($register_data['day']);
array_walk($register_data, 'array_sanitize');

$fields = '`' . implode('`, `', array_keys($register_data)) . '`';
$data = '\'' . implode('\', \'', $register_data) . '\'';

mysql_query("INSER INTO `users` ($fields) VALUES ($data)");
}
?>

次に、テーブルに「birthday」という列が必要になります。この列は「DATE」タイプである必要があります。

于 2013-01-07T17:55:04.303 に答える