php - 使用 PHP 用户在 CodeIgniter 中输入的值更新数据库表

标签 php mysql codeigniter model controller

我正在尝试使用从用户获取的值来更新数据库中的一个用户表。但由于某种原因,它没有更新任何内容。

HTML 表单

<form class="form-horizontal" method = "post">
<fieldset>

    <!-- Form Name -->
    <legend>User Details</legend>

    <div>
        <?php echo $this->session->flashdata('msg'); ?>
    </div>

    <!-- Text input-->
    <div class="form-group">
        <label class="col-md-4 control-label" for="name">Full Name</label>
        <div class="col-md-8">
            <input id="name" name="name" type="text" placeholder="something" class="form-control input-md">

        </div>
    </div>

    <!-- Text input-->
    <div class="form-group">
        <label class="col-md-4 control-label" for="dob">Date of Birth</label>
        <div class="col-md-4">
            <input id="dob" name="dob" type="text" placeholder="" class="form-control input-md">

        </div>
    </div>

    <!-- Multiple Radios -->
    <div class="form-group">
        <label class="col-md-4 control-label" for="gender">Gender</label>
        <div class="col-md-2">
            <select id="gender" name="gender" class="form-control">
                <option value="1">Male</option>
                <option value="2">Female</option>
            </select>
        </div>
    </div>

    <!-- Text input-->
    <div class="form-group">
        <label class="col-md-4 control-label" for="degree">Degree</label>
        <div class="col-md-8">
            <input id="degree" name="degree" type="text" placeholder="degree" class="form-control input-md">

        </div>
    </div>

    <!-- Text input-->
    <div class="form-group">
        <label class="col-md-4 control-label" for="specialization">Specialization</label>
        <div class="col-md-8">
            <input id="specialization" name="specialization" type="text" placeholder="specialization" class="form-control input-md">

        </div>
    </div>

    <!-- Select Basic -->
    <div class="form-group">
        <label class="col-md-4 control-label" for="year">Degree Year</label>
        <div class="col-md-2">
            <select id="year" name="year" class="form-control">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
            </select>
        </div>
    </div>

    <!-- Select Basic -->
    <div class="form-group">
        <label class="col-md-4 control-label" for="semester">Semester</label>
        <div class="col-md-2">
            <select id="semester" name="semester" class="form-control">
                <option value="1">1</option>
                <option value="2">2</option>
            </select>
        </div>
    </div>

    <!-- File Button -->
    <div class="form-group">
        <label class="col-md-4 control-label" for="filebutton">Upload Profile Picture</label>
        <div class="col-md-4">
            <input id="filebutton" name="filebutton" class="input-file" type="file">
        </div>
    </div>

    <!-- Button -->
    <div class="form-group">
        <label class="col-md-4 control-label" for="submit"></label>
        <div class="col-md-4">
            <a href="<?php echo base_url("/index.php/studentDashboardController/saveUserDetails"); ?>" >
                <button id="submit" name="submit" class="btn btn-primary">Save Changes</button>
            </a>
        </div>
    </div>

</fieldset>

studentDashboardController

public function  saveUserDetails()
{
     $this->load->model('userModel');
     if (isset($this->session->userdata['logged_in']))
     {
          $username = ($this->session->userdata['logged_in']['username']);
     }
     $user = $this-> userModel-> getUserUid($username); //Gets the uid of the current user
     $this->userModel->saveUserDetails($user);
     $this->session->set_flashdata('msg', '<div class="alert alert-success text-center">Successfully Inserted Data</div>');
     $this->load->view('studentDashboard/common',$data);
     redirect(base_url('index.php/studentDashboard/editProfile',$data1));
}

用户模型

public function saveUserDetails($uid)
{
    $data = array(
         'name' => $this->input->post('name')
    );
    $this->db->where("uid",$uid);
    $this->db->update("sysuser",$data);
}

sysuser 有 uid 和 name 字段。我不确定我在这里做错了什么。任何这方面的帮助将不胜感激

最佳答案

您没有将帖子数据发送给 Controller 。将 $this->userModel->saveUserDetails($user); 更改为

 $this->userModel->saveUserDetails($user,$this->input->post('name'));

现在模型应该是这样的

public function saveUserDetails($uid,$name)
{
    $data = array(
         'name' => $name
    );
    $this->db->where("uid",$uid);
    $this->db->update("sysuser",$data);
}

并确保您已正确设置表单操作,例如

 <form class="form-horizontal" method="post" action="<?php echo site_url('studentDashboardController/saveUserDetails');?>">

关于php - 使用 PHP 用户在 CodeIgniter 中输入的值更新数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40100751/

相关文章:

使用表 2 值添加到表 1 时出现 PHP SQL 语法错误

php - 使用foreach从数据库中获取数据到数组中

php - 如何在 Doctrine2 中使用准备好的语句截断表

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

php - 使用 Typeform 制作产品订单并使用 PapPal 付款

python - 如何使用 SQLALchemyJobStore 保存 python Apscheduler

python - 如何执行 DJANGO 的 SELECT COUNT(*) GROUP?

mysql - 在 codeigniter 中重置密码

php - Codeigniter 3 HMVC 已被破坏

php - 制作一个简单的日历