为什么我无法更新数据?
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"> *</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"> *</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"> *</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"> *</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"> *</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');
,它在您最初使用它获取数据时似乎仍然存在。
另外,您似乎没有正确处理上传的文件(图片),请检查一下。
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"> *</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"> *</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"> *</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"> *</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"> *</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');
,它在您最初使用它获取数据时似乎仍然存在。
另外,您似乎没有正确处理上传的文件(图片),请检查一下。