php表单mysql更新保存数据

时间:2016-03-26 20:30:16

标签: php mysql database save

难以保存字段“月份”和“年份”,因为它们没有正确存储会话。不确定是否因为我已经合并了月份和年份来制作sortcode。在表单值上进行子设置后,将重置为月份,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它适用于会话但是然后删除所有数据并重置为默认值因此不保存到数据库?

2 个答案:

答案 0 :(得分:0)

<option <?php if(isset($month) && !empty($month) && $month == '1') echo " selected "; ?> value="1">1</option>

你选择了之前和之后的空间,比如“选中”而不是“选中”。 提交后查看所有页面的来源(在IE上查看源代码)

我认为输出会是这样的:

<option selectedvalue="1">1</option>

而不是

<option selected value="1">1</option>

并且需要3个月检查$月

if (isset($month) && $month=='1')
我认为

应该足够了。

编辑 - &GT;

案例$ month和$ year在发布后正确使用 - &gt;

$query = "INSERT INTO `details`(`user_id`, `name`, `no`, `sortcode`)
            VALUES (";
        $query .= "'" . $userID . "',";
        $query .= "'" . $_SESSION['name']  . "',";
        $query .= "'" . $_SESSION['no']    . "',";
        $query .= "'".$month."/".$year."'";
        $query .=
            ");";

或使用选择输入的值(发布后) - &gt;

$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月份和年份变量值。

答案 1 :(得分:0)

看起来您根据查询结果或默认会话值设置变量$ year和$ month,但是当您进行插入时,您使用的是$ _SESSION变量,并且从未使用$ month和$ year。 尝试:

$query .= "'".$month."/".$year."'";
." `sortcode` = '".$month."/".$year."'";