现在我正在尝试使用table1中的该操作减少table2中的值。
这是table1结构:
table2结构:
这个问题是here
的第2部分这是来自table1(view table1)的GUI:
这里是table2(view table2)的GUI:
当我从table1输入数据时,我已经尝试增加table2中的amount值。例如,在开始时,table2中的所有数据都具有金额值= 0但是如果我想增加table2中的金额值,我们需要来自table1的输入数据并输入amount_of_inserted。这个意思, 如果我从table1插入数据,其值为amount_of_inserted = 1,则table2中的金额值现在变为1,因为它已增加,它已经解决了。但是,如果我单击GUI table1中的删除按钮,现在我想尝试减少table2中的金额值,例如,如果table2中的金额值= 1(因为它已经插入到table1中,金额值= 1)然后,如果我删除table1中的这一行,table2中的金额值将减少,现在table2的金额值= 0。
这是我的代码:
My_Data.php(控制器)
<?php
class My_Data extends CI_Controller
{
public function delete_datatable1($id)
{
$where = array('id_data_inserted' => $id);
$this->my_model->delete_data($where, 'table1');
$this->my_model->decrease_value($where);
redirect('admin\data\my_data\view_table1');
}
public function view_table1()
{
$data['table1'] = $this->my_model->view_data('table1')->result();
$this->load->view('admin/data/v_table1', $data);
}
}
My_Model.php(型号)
<?php
class My_Model extends CI_Model
{
public function view_data($table)
{
return $this->db->get($table);
}
public function delete_data($where, $table)
{
$this->db->where($where);
$this->db->delete($table);
}
public function decrease_value($id)
{
$qry1 = $this->db->query("select id_data from table1 where
id_data_inserted = '$id'");
$qry2 = $this->db->query("select amount_of_inserted from
table1 where id_data_inserted = '$id'");
$qry3 = $this->db->query("update table2 set amount = amount -
'$qry2' where id_data = '$qry1'");
return $qry3;
}
}
v_table1(查看)
<tbody>
<?php
foreach($table1 as $tdata)
{?>
<tr>
<td><?php echo $tdata->id_data_inserted ?></td>
<td><?php echo $tdata->date ?></td>
<td><?php echo $tdata->id_data ?></td>
<td><?php echo $tdata->amount_of_inserted ?></td>
<td><?php echo $tdata->id_room ?></td>
<td>
<?php echo anchor('admin\Data\my_data/edit_data/'.$tdata->id_data_inserted, 'Edit'); ?>
<span>|</span>
<?php echo anchor('admin\Data\my_data/delete_datatable1/'.$tdata->id_data_inserted, 'Delete'); ?>
</td>
</tr>
<?php } ?>
</tbody>
但不起作用,如果我删除table1中的数据行,则table2中的金额值不会减少。
任何解决方案?
答案 0 :(得分:1)
例如:
$query = $this->db->query("SELECT * FROM users LIMIT 1;");
$`row = $query->row(0, 'User');`
echo $row->name; // access attributes
echo $row->reverse_name(); // or methods defined on the 'User' class`:
我已将您的代码重写为:
$this->db->select('id_data,amount_of_inserted')
->where('id_data_inserted',$id);
$query=$this->db->get('table1');
foreach($query->result_array() as $row){
$id_data = $row['id_data'];
$amount_of_inserted = $row['amount_of_inserted'];
}
$qry3 = $this->db->query("update table2 set amount = amount -
'$amount_of_inserted' where id_data = '$id_data'");