問題:
ドキュメント、または自分の状況に関連する回答と回答の両方を見つけるのに苦労しています。
基本的に、複数の HTML フォーム ドロップダウン フィールドを使用して、挿入可能な MySQL 対応の日付を生成したいと考えています。
現在、私の挿入コードは、MySQL 形式のテキスト フィールドに手動で入力する日付用の 1 つのフィールドを使用しています。
$sql=
" INSERT INTO events (e_date, e_time, e_ampm, e_type, e_name) " .
" VALUES ('{$form_e_date}','{$form_e_time}', '{$form_e_ampm}', '{$form_e_type}','{$form_e_name}')";
$form_e_date (現在、YYYY-MM-DD 形式を使用してテキスト フィールドに入力しています) の代わりに、ドロップダウン選択ボックスから選択した値で 3 つの個別のフォーム フィールド ($month、$day、$year など) を使用したいと考えています。
質問:
$form_e_date の代わりに 3 つの変数 ($year、$month、$day、MySQL の場合は「-」で区切られる) を連結する方法はありますか? もしそうなら、この構文をどのように構成しますか?
私はこれにもっと良い方法でアプローチすることにもオープンです (まだ MySQL/PHP を使用しています)。リソースへのヘルプまたは指示が必要です。
どんな助けでも大歓迎です!
追加情報:
PS現在の構文は
VALUES ('{$form_e_date}','{$form_e_time}', ... etc.
それ以外の
VALUES ('$_POST[form_e_date]','$_POST[form_e_time]', ... etc.
私が受け取っていた未定義のインデックス通知に対する PHP 修正の一部として。
また、解決策は
$form_e_date= $_POST['year'] . "-" . $_POST['month'] . "-" . $_POST['day'];
未定義のインデックス通知を排除する手法を使用して事前に定義されている場合でも、新しい年、月、および日の変数で未定義のインデックス通知が発生するため、私にとっては好ましくありません。たとえば、次のようになります。
if (array_key_exists("year", $_POST))
$year = mysql_real_escape_string($_POST["year"]);
else
$year = null;
コード #abc (JT Smith の回答へのコメント用):
$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
$whole_date = array($year, $month, $day);
$mysql_formatted_date = implode("-", $whole_date);
$sql=
" INSERT INTO events (e_date, e_time, e_ampm, e_type, e_name) " .
" VALUES ('{$mysql_formatted_date}','{$form_e_time}', '{$form_e_ampm}', '{$form_e_type}','{$form_e_name}')";
コード #fgh:
<select name="month">
<option value="01">Jan</option>
<option value="02">Feb</option>
<option value="03">Mar</option>
<option value="04">Apr</option>
<option value="05">May</option>
<option value="06">Jun</option>
<option value="07">Jul</option>
<option value="08">Aug</option>
<option value="09">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
<select name="day">
<?php
for ($i = 1; $i <=31; $i++) {
echo "<option value=\"$i\">$i</option>";
}
?>
</select>
<select name="year">
<option value="2012">2012</option>
<option value="2013">2013</option>
</select>