gpt4 book ai didi

php - Codeigniter:一次将一行从一个表移动到另一个表

转载 作者:行者123 更新时间:2023-11-29 10:31:34 26 4
gpt4 key购买 nike

我有点被困在这里了!我有两个表 free_membersdomstic_members,并且我需要将选定的行从 free_members 表移动到 domestic_members 表。为什么我说选定的行,因为在 free_members 表中的每一行的末尾都有一个升级选项,可以将该行移动到 domestic_members 表中。我有代码,但它没有按照我想要的方式工作。现在发生的事情是,当我单击升级选项时,它只是复制整个表记录并将其发送到另一个表。这是代码

Controller

function upgradeprofile() {
// $this->load->database();
$this->load->model('freemember_model');

$this->freemember_model->upgrade();
}

型号

function upgrade() {
$query = $this->db->get('free_members');
foreach ($query->result() as $row) {
$this->db->where('id', $member_id);
$this->db->insert('domestic_members', $row);
}
}

查看

<center>  Search Member:
<input type="text" name ='search' id='search' placeholder="Search a member"/></center>
<input type="hidden" name ='limit_from' id='limit_from'/>
</form>
<br><center><button type="button" onclick="CallPrint1('background12')">Print</button>
<div id="background12" class="box-body">
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>Sr#</th>
<th><center>Full Name</th>


<th><center>Mobile Number</th>
<th><center>Membership# / CNIC</th>
<th><center>Email Address</th>

<th><center>Province</th>
<th><center>District</th>
<th><center>Tehsil</th>
<th><center>Union Council</th>
<?php /*?> <?php if($sessiondata['deletemembers']):?><?php */?>
<?php if($sessiondata['username'] != 'bilal.sabir'):?>
<th><center>Delete</th>
<?php endif;?>

<?php /*?><?php if($sessiondata['data_modification'] && $sessiondata['username'] != 'bilal.sabir' ):?><?php */?>
<?php if($sessiondata['username'] != 'bilal.sabir'):?>
<th><center>Print</th>
<th><center>Edit</th>
<th><center>Change Pwd</th>
<th><center>Upgrade</th>
<?php endif;?>


</tr>
</thead>
<tbody>
<?php $sr=0;?>
<?php foreach ($freemembers as $member): ?>
<tr><td><center><?php echo $sr+=1; ?></td><td><center><?php echo $member->first_name; ?></td>
<td><center><?php echo $member->mobile; ?></td><td><center><?php echo $member->cnic; ?></td>
<td><center><?php echo $member->email; ?></td>
<td><center><?php echo $member->province; ?></td><td><center><?php echo $member->district; ?></td><td><center><?php echo $member->tehsil; ?></td><td><center><?php echo $member->uc; ?></td>
<?php /*?> <?php if($sessiondata['deletemembers']):?><?php */?>
<?php if($sessiondata['username'] != 'bilal.sabir'):?>

<td><center><a href="<?php echo base_url() . "index.php/admin/deletefreemember/" . $member->id; ?>">delete</a></td>
<?php endif;?>
<?php /*?><?php if($sessiondata['data_modification'] && $sessiondata['username'] != 'bilal.sabir' ):?><?php */?>
<?php if($sessiondata['username'] != 'bilal.sabir'):?>
<td><center><a href="<?php echo base_url() . "index.php/admin/printcardfree/" . $member->id; ?>">print</a></td>

<td><center><a href="<?php echo base_url() . "index.php/admin/editprofilefree/" . $member->id; ?>">edit</a></td>
<td><center><a href="<?php echo base_url() . "index.php/admin/changepasswordfree/" . $member->id; ?>">change pwd</a></td>
<td><center><a href="<?php echo base_url() . "index.php/admin/upgradeprofile/" . $member->id; ?>">Upgrade</a></td>
<?php endif;?>
</tr>
<?php endforeach; ?>
</tbody>
</table>

这是我的表 free_members 的 View

enter image description here

最佳答案

根据您的观点,您有这个...

index.php/admin/upgradeprofile/" . $member->id

因此,如果 $member->id = 100,则 url 将为

index.php/admin/upgradeprofile/100

因此,您正在传递模型代码中提到的 member_id,但您没有获取它,也没有正确使用 where 。

所以你需要获取member_id的句柄...

这是一个解决方案/想法...这依赖于您提供正确验证的整数...您需要始终检查/验证您的输入...

Controller

function upgradeprofile($member_id) {
// Need to check that $member_id is an integer
// To be added by the OP

$this->load->model('freemember_model');

// $member_id is passed in via the URL.
$this->freemember_model->upgrade($member_id);
}

型号

function upgrade() {
// Which member do we want to get from the free_members Table?
$this->db->where('id', $member_id);
$query = $this->db->get('free_members');
// Did we get a result? i.e was a valid member id passed in?
if($query !== false) {
$row = $query->row();
$this->db->insert('domestic_members', $row);
} else {
// Do nothing or handle the case where an illegal number was used...
}
}

注意:此代码未经测试,仅用作指南。它可以通过多种方式重构,但我现在试图保持简单。

所以,请不要只是复制并粘贴此内容,而至少要“思考”您要做什么以及如何编写代码来实现它。

这里的要点是......1. 您必须使用某种成员(member) ID,以便您可以检索免费成员(member)的记录,以便将其插入到另一个表中。2. 您在网址中提供了此“成员(member) ID”,因此您需要提取它。3. 您可以通过将其设置为被调用方法中的参数来做到这一点...或者您可以使用段(查找)。

因此,一旦您获得了成员(member) ID,您就可以获取免费成员(member)条目并将其插入到另一个表中,但是您希望免费成员(member)表中的条目发生什么,因为它仍然存在,现在您有相同信息的两份副本...删除它吗?

如果您需要进一步解释 - 请询问。

最后一点。你应该确保你完全理解你在做什么,而不是仅仅因为有人说或者你认为这是一个好主意而这样做......有一个好的理由并考虑其含义......

关于php - Codeigniter:一次将一行从一个表移动到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47325790/

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