为什么我无法更新数据?

Why I cannot update the data?

original data echo data upated data does not updated into databse 控制器更新 我从表单中获取了 id 并传递了值以在下一页显示数据。 它会根据用户点击哪一行按钮显示某些数据。

<?php

class ControllerUpdate extends CI_Controller{

    public function __construct(){

        parent:: __construct();

        $this->load->model('common/ModelUpdate');

        $this->load->database();

        $this->load->library('form_validation');

        $this->load->helper(array('form', 'url'));

    }

    public function index(){
         
        //show data by id
        $id = $this->input->get('id');

        $data['showData'] = $this->ModelUpdate->showData($id);

        $this->load->view('template/update', $data);

        if($this->input->post('updates')){
            $id = $this->input->post('id');
            $site_name = $this->input->post('names');
            $address = $this->input->post('addresses');
            $description = $this->input->post('descriptions');
            $image = $this->input->post('images');

            $this->ModelUpdate->updateData($id, $site_name, $address, $description, $image);    
            echo "<script>alert('Data Updated Successfully');</script>";

        }

    }
    
}
?>

模型更新 我在更新数据的时候传了id,不会更新数据而是回显数据更新成功

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class ModelUpdate extends CI_Model {

    public function showData($id){

        $sql = "SELECT DISTINCT * FROM `web_listing` WHERE `id` = '".$id."'";
        $result = $this->db->query($sql);
        return $result;
    }

    public function updateData($id, $site_name, $address, $description, $images){

        //, `image_file` = '$image_file'
        
        echo "<pre>";
        print_r($id ."<br>". $site_name ."<br>". $address ."<br>". $description ."<br>". $images);
        echo "</pre>";
        
        $sql = "UPDATE `web_listing` SET `website_name` = '$site_name', `website_address` = '$address', `description` = '$description', `image_name` = '$images' WHERE `id` = '".$id."'";

        $query = $this->db->query($sql);
        return $query;
        
    }
}

?>

更新视图 我还在操作中传递了 id,也在提交按钮中传递了值。但是更新功能还是不能用

<?php
        if($showData->num_rows() > 0)
           {
             foreach($showData->result_array() as $row){
            $ids = $row['id'];
?>

  <form class="form-horizontal" id="form" method="post" action="<?php base_url('updateData/$ids')?>" enctype="multipart/form-data">

    <div class="form-group">
      <label class="control-label col-sm-3">Id:<span class="required">&nbsp;*</span></label>
      <div class="col-sm-9">
        <input type="text" disabled="disabled " class="form-control" id="id" name="id" value="<?php echo $row['id'] ; ?>" required>
      </div>
    </div>

    <div class="form-group">
      <label class="control-label col-sm-3">Website Name:<span class="required">&nbsp;*</span></label>
      <div class="col-sm-9">
        <input type="text" class="form-control" id="names" name="names" value="<?php echo $row['website_name'] ; ?>" required>
      </div>
    </div>
    
    <div class="form-group">
      <label class="control-label col-sm-3">Website Address:<span class="required">&nbsp;*</span></label>
      <div class="col-sm-9">
        <input type="text" class="form-control" id="addresses" name="addresses" value="<?php echo $row['website_address']  ; ?>" required>
      </div>
    </div>
    
    <div class="form-group">
      <label class="control-label col-sm-3">Description:<span class="required">&nbsp;*</span></label>
      <div class="col-sm-9">          
        <input type="text" class="form-control" id="descriptions" name="descriptions" value="<?php echo $row['description']  ; ?>" required>
      </div>
    </div>

    <div class="form-group">
      <label class="control-label col-sm-3">Image:<span class="required">&nbsp;*</span></label>
      <div class="col-sm-9">          
        <input type="file" class="form-control" id="images" name="images" value="<?php echo $row['image_file']  ; ?>" >
      </div>
    </div>

    <div class="form-group">
        <div class="col-sm-offset-3 col-sm-9">
        <button type="submit" value="<?php echo $ids ; ?>" id="updates" name="updates" class="btn btn-default" >Update</button>
        <a href="<?php base_url()?>editData"><button type="button" value="back" id="back" name="back" class="btn btn-default" onclick="back()">Back</button></a>
      </div>
    </div>

  </form>
</div>
</div>
        <?php
       }
                } 
           
            ?>

禁用的表单元素不会发送到 PHP,因此 $this->input->post('id') 将是空白的,这就是为什么您的 echo_data image/screenshot 不显示 ID。将表单元素更改为只读而不是禁用,或者使用 $this->input->get('id');,它在您最初使用它获取数据时似乎仍然存在。

另外,您似乎没有正确处理上传的文件(图片),请检查一下。