gpt4 book ai didi

php - 使用 Codeigniter 更新数据库表中的字段

转载 作者:行者123 更新时间:2023-12-04 06:16:51 25 4
gpt4 key购买 nike

我有两个表,一个是“学生”,另一个是“状态”。学生表有一个外键 status_status_id。我想更新这个 status_status_field。在我看来,状态中的所有状态(大三、大四、大一、大二)都显示在下拉菜单中。

我想通过从此下拉列表中获取输入来更新学生表的 status_status_id(最初它的值为 0)字段。并且要更新我还需要特定学生的 ID。问题是字段 status_status_id 没有更新。显示以下错误-

       A Database Error Occurred

Error Number: 1054

Unknown column 'Array' in 'where clause'

UPDATE `student` SET `0` = '' WHERE `id` = Array

Filename: Z:\www\CI\system\database\DB_driver.php

Line Number: 330

我的 Controller
 function update(){
$id=$this->input->post('id');
$data=array(
'status_status_id'=>$this->input->post('status_status_id'),
);
$this->status_model->update($data, $id);
}
}

我的模特
function update($data,$id){

$this->db->where('id', $id);
$this->db->update('student', $data);
}
}

添加状态的 View
   <?php echo form_open('status_controller/update'); 
$r=$info[0]->id;
$data=array (
'id'=>$r,
'status_status_id'=>set_value('status_status_id')
);
?>
<p><?php echo form_input($data); ?>
<p><select name ='status_status_id'>
<?php echo form_error('status_status_id'); ?>
<br /><?php
$getType = mysql_query("SELECT status_id, status FROM status ORDER BY status_id");
while($type = mysql_fetch_object($getType)){
echo "<option value=\"{$type->status_id}\">{$type->status} </option>",set_value('status_status_id');
} ?></p><p><?php echo form_submit( 'submit', 'Update Status'); ?></p><?php echo form_close(); ?>

最佳答案

我看到 View 几乎没有错误。我会用评论重写它,然后它应该可以工作。

请注意,您应该将所有数据库查询移到 View 之外,当然还要添加验证。我不确定 ID 是否实际上是一个整数。

// I suppose this gives us a single ID, not an array of IDs or something else
$r = $info[0]->id;

// put the ID in a hidden field, so POST sends an "id" variable
$hidden_fields = array('id' => $r);

// add the hidden fields directly in form_open()
echo form_open('status_controller/update', '', $hidden_fields);

// making $getType = mysql_query("SELECT status_id, status FROM status ORDER BY status_id"); in an active record way
$this->db->select('status_id, status');
$this->db->order_by('status_id', 'asc');
$query = $this->db->get('status');

// loop to make an array of the statuses to insert in form_dropdown() array('value' => 'display')
$statuses = array();
foreach ($query->result() as $row)
{
$statuses[$row->status_id] = $row->status;
}

// you would probably be able to get the current status_status_id
// I will suppose that $info[0]->status_status_id holds that data
echo form_dropdown('status_status_id', $statuses, set_value('status_status_id', $info[0]->status_status_id));
echo form_error('status_status_id');
echo form_submit( 'submit', 'Update Status');
echo form_close();

Controller :
function update(){
// again, this is suspicious from your example, check if it's not an Array
$id = $this->input->post('id');
$data = array(
'status_status_id' => $this->input->post('status_status_id'),
);

$this->status_model->update($data, $id);
}

该模型:
function update($data, $id){
$this->db->where('id', $id);
$this->db->update('student', $data);
}

关于php - 使用 Codeigniter 更新数据库表中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7132956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com