【发布时间】:2016-06-07 23:52:23
【问题描述】:
我有一个更新多行的表单。一个项目和日期已完成。 COMPLETED 的默认值为空。在 php/mysql 中,我有一个表单来编辑列表。我可以更新 COMPLETED,但是如果我不以它不保持 NULL 的形式输入值,它会插入一个日期 0000-00-00。那里的功能需要一个有效的日期或 NULL。以下是相关代码:
表格:
echo '<form method="post">';
while ($row=mysql_fetch_assoc($res) )
{
echo 'LIST_NUM : ' . $row["LIST_NUM"]. '<br/>';
echo 'I did this : ' . $row["ITEM_NAME"]. '<br/>';
echo 'on : <input type="text" name="COMPLETED['. $row["LIST_NUM"] .']" value='.$row["COMPLETED"].'><br/>'."\n";
echo '<input type="hidden" name="LIST_NUM[]" value="'. $row["LIST_NUM"] .'">'."\n";
echo '<input type="checkbox" name="delete[]" value="'. $row["LIST_NUM"] .'">'."\n";
echo "<hr>\n";
}
echo '<input type="submit" name="submit" value="make it so">';
echo '</form>';
插入
foreach ( $_POST["LIST_NUM"] AS $LIST_NUM ) {
$ITEM_NAME =mysql_real_escape_string( $_POST["ITEM_NAME"][$LIST_NUM]);
$COMPLETED = mysql_real_escape_string($_POST["COMPLETED"][$LIST_NUM]);
$update = " UPDATE `UCKET`.`LIST` SET `COMPLETED` = '$COMPLETED' WHERE `LIST`.`LIST_NUM` =$LIST_NUM;";
mysql_query($update) or die( mysql_error());
该表允许 NULL,这是该字段的默认设置。我的预感是表单字段正在传递一些东西,但如果用户输入一个日期,我不知道如何让它传递一个日期,而如果表单中没有输入任何值,则传递 null。
谢谢
【问题讨论】:
-
答: 将您的列更改为 NULL 作为其默认值。您还可以将三元运算符与前者结合使用。如果你不能改变它的当前状态,或者只是一个三元运算符。