Ввод дат в базу данных MySQL с помощью SQL INSERT - PullRequest
1 голос
/ 10 октября 2009

Буду признателен за лучшее предложение о том, как подойти к этому, чем то, что я сделал до сих пор. Прямо сейчас даты должны быть введены в правильном формате год-месяц-день. Есть ли способ еще больше автоматизировать эту задачу с помощью раскрывающихся списков, просто не уверен, как бы вы объединили информацию из раскрывающихся списков для отправки в одно поле с моей командой sql INSERT INTO. Вот как это выглядит для быстрого визуального сайт

Вот пример моего кода ниже.

$date = $_POST['date'];
$title = $_POST['title'];
$entry = $_POST['entry'];





if(($date !="") && ($title !="") && ($entry !="")) {

$sql = "INSERT INTO news (date,title,entry)VALUES(
\"$date\",
\"$title\",
\"$entry\"
)";

$results = mysql_query($sql)or die(mysql_error());

}
?>







<form name="formS" method="post" action="insert.php">
<p>
Date:<input type="text" name="date" id="date" />

</p>

<p>
Title<input type="text" name="title" id="title" />
</p>
<p>
Entry:<textarea name ="entry"  ></textarea>
</p>

<p>
Submit:<input type="submit" name="submit" id="submit" />
</p>


</form>

Ответы [ 3 ]

3 голосов
/ 10 октября 2009

Одно поле ввода даты произвольной формы может быть подходящим, в зависимости от ваших потребностей. Это даст людям большую гибкость при вводе даты. Например, это будет работать, если кто-то введет «Вчера» или «7 дней назад».

$date = date("Y-m-d", strtotime($_POST['date']));

Демо-версия:

$date_expressions = array(
    "yesterday",
    "tomorrow",
    "7 days ago",
    "next year",
    "last month",
    "10 jan 08"
);

date_default_timezone_set("America/Los_Angeles");

echo "<pre>";
foreach ($date_expressions as $date_expression) {
    $date = date("Y-m-d", strtotime($date_expression));
    echo "{$date_expression} = {$date}\n";
}
echo "
";

Вывод (выполнено 10-9-2009):

yesterday = 2009-10-08
tomorrow = 2009-10-10
7 days ago = 2009-10-02
next year = 2010-10-09
last month = 2009-09-09
10 jan 08 = 2008-01-10
0 голосов
/ 10 октября 2009

Если у вас есть несколько входов для даты, вы можете объединить это так:

$date = sprintf('%04d-%02d-%02d', $_POST['date_year'], $_POST['date_month'], $_POST['date_day']);
0 голосов
/ 10 октября 2009

Вы можете просто принять дату в виде нескольких раскрывающихся списков, а затем объединить их перед вводом в базу данных

$date = $_POST['dateyear']."-".$_POST['datemonth']."-".$_POST['dateday'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...