【发布时间】:2014-09-12 04:11:11
【问题描述】:
我无法将值插入月份。我每个月有 12 列。我的代码只存储一月份的值。如果我使用switch可以吗?
if ($_GET['do'] == 'insert')
{
$p_aid = $_GET['id'];
$t_no = $_POST['t_no'];
$t_month = $_POST['t_month']; //dropdown
$t_value = $_POST['t_value']; //value based on month selected
$t_year = $_POST['t_year'];
$sql = "INSERT INTO tbl_detail (p_aid,t_not_year) ";
$sql .= "VALUES ($p_aid,'$t_no''$t_year')";
mysql_query($sql);
switch ($t_month) {
case $t_month = "Jan";
$sql = "UPDATE tbl_detail SET t_jan = '$t_value'";
$sql .= "WHERE p_aid = $p_aid AND t_no = $t_no";
break;
case $t_month = "Feb";
$sql = "UPDATE tbl_detail SET t_feb = '$t_value'";
$sql .= "WHERE p_aid = $p_aid AND t_no = $t_no";
break;
mysql_query($sql);
}
redirect("basicview.php?id=$p_aid&type=success&msg=new+row+added");
}
【问题讨论】:
-
你的
mysql_query($sql);在开关block里面放出来 -
为什么要更新表格?您可以在第一次直接在查询中插入月份。
-
为什么你有 12 个不同的列并且只使用其中一个?您当然可以做一些更简单的事情,但 case 语句比将月份名称注入插入字符串更安全。
-
@GarrGodfrey 完全同意。我更新了我的帖子以使用访问两次的数组来清理只要服务器不需要设置 var 就可以保存的数组。
标签: php mysql database insert sql-update