保存字段"month"one_answers"year"时遇到困难,因为它们没有正确存储在会话中。不确定是不是因为我把月份和年份组合在一起做了排序码。在表单上提交值后,将重置为2016年1月的默认值。如何将选定的值保存到mysql表的详细信息中?
我需要改进以下函数,以便正确存储月份和年份字段,而不是存储默认值。
<?php
$sql = "SELECT * FROM payments WHERE user_id = '".$_SESSION['user']['id']."' LIMIT 1;";
$result2 = mysql_query($sql);
if($result2) {
$row2 = mysql_fetch_assoc($result2);
}
$name = (isset($row2) && !empty($row2['name'])) ? $row2['name'] : (isset($_SESSION['name']) ? $_SESSION['name'] : '');
$no = (isset($row2) && !empty($row2['no'])) ? $row2['no'] : (isset($_SESSION['no']) ? $_SESSION['no'] : '');
$year = (isset($row2) && !empty($row2['sortcode'])) ? explode('/',$row2['sortcode'])[0] : (isset($_SESSION['year']) ? $_SESSION['year'] : '');
$month = (isset($row2) && !empty($row2['sortcode'])) ? explode('/',$row2['sortcode'])[1] : (isset($_SESSION['month']) ? $_SESSION['month'] : '');
如果我将$result2删除到$result,错误似乎就在这里,它对会话有效,但在所有数据都被删除并重置为默认值后,因此不会保存到数据库中?
看起来您是根据查询结果或默认会话值设置变量$year和$month,但当您进行插入时,您使用的是$_session变量,而$month和$year从未使用过。尝试:
$query .= "'".$month."/".$year."'";
." `sortcode` = '".$month."/".$year."'";
<option <?php if(isset($month) && !empty($month) && $month == '1') echo " selected "; ?> value="1">1</option>
让你在选择之前和之后尝试空格,像"选定"而不是"选定"。在提交后检查allso页面的来源(在IE上查看来源)
我认为输出会是这样的:
<option selectedvalue="1">1</option>
而不是
<option selected value="1">1</option>
有必要对$month 进行3倍检查吗
if (isset($month) && $month=='1')
我认为应该足够了。
编辑->
案例$month和$year在post->后正确udad
$query = "INSERT INTO `details`(`user_id`, `name`, `no`, `sortcode`)
VALUES (";
$query .= "'" . $userID . "',";
$query .= "'" . $_SESSION['name'] . "',";
$query .= "'" . $_SESSION['no'] . "',";
$query .= "'".$month."/".$year."'";
$query .=
");";
或者使用选择输入的值(张贴后)->
$query = "INSERT INTO `details`(`user_id`, `name`, `no`, `sortcode`)
VALUES (";
$query .= "'" . $userID . "',";
$query .= "'" . $_SESSION['name'] . "',";
$query .= "'" . $_SESSION['no'] . "',";
$query .= "'".$_POST['month']."/".$_POST['year']."'";
$query .=
");";
或者只更新$session的月份和年份变量值。