我想创建用户在按钮上点击经销商。这是我的场景:我有一个分销商模块,在这个模块中,经销商可以为用户请求。此请求具有id、num_of_users_required和请求日期,该日期存储在名为user_requests的表中。现在,这些请求将在Admin中获取。如下所示:
现在,如果管理员单击“是”,那么我希望为该分销商创建用户,例如:1 1Linux 97-500-1这里是分销商,所以希望为该分销商创建用户。
现在,每个用户都由一个名为key的唯一字段来标识。在这个字段中,我插入了分销商的唯一密钥。因此,每个用户被分销商的密钥映射到它的分销商,我们知道哪个用户属于哪个分销商。
现在我的看法是:
<tr class="odd gradeX">
<td><?php echo $user->id; ?></td>
<td><?php echo $user->user_requested; ?></td>
<td><?php echo $user->key; ?></td>
<td><?php echo $user->date_requested; ?></td>
<td><?php echo anchor('admin/reseller/create_user/' . $user->id,'Yes'); ?></td>
<td><a href="reseller/change_status" class="btn btn-danger">No <?php echo'<i class="glyphicon glyphicon-trash"></i>';?></a></td>
<td><a href="" class="btn btn-success"><?php echo $user->status; ?></td> </a></td>
</tr>
这将按照上面的图像生成视图,如果我单击“是”,那么这就是创建用户的方法。
public function create_user($id)
{
$this->load->model('more_m');
$rajan =$this->more_m->get(array('user_requested',$id));
$request=$rajan->user_requested;
$this->load->model('reseller_m');
$query=$this->db->select('key');
$query=$this->db->get('reseller');
if($query->num_rows() > 0)
{
$row = $query->row_array();
$key= $row['key'];
}
for($i=1; $i<=$request;$i++)
{
$mydata=array('key'=>$key);
$this->db->insert('users',$mydata);
echo $this->db->last_query();
die();
}
$this->load->model('more_m');
$this->db->set('status', "'approved'",FALSE);
$this->db->where('id',$id);
$this->db->update('user_request');
redirect('admin/new_user');
}
for循环插入到用户表中,其中密钥是分销商的密钥。
这是我生成的查询:
在users
(**key
**)值中插入 ('Rajan-92-1-100-1')
因此,对于第一个请求,代码可以正常工作,但是如果我单击第二个请求并批准它,那么它将为第一个分销商插入用户。所以我想这里应该有身份证。
希望你能理解我的问题。
表结构:
1)分销商表
2)用户表
发布于 2015-10-05 08:43:03
我在拿经销商的钥匙时犯了个愚蠢的错误。
public function create_user($id)
{
$this->load->model('more_m');
$rajan =$this->more_m->get(array('user_requested',$id));
$request=$rajan->user_requested;
$this->load->model('reseller_m');
$query=$this->db->select('key');
$query=$this->db->where('id',$id);
$query=$this->db->get('reseller');
if($query->num_rows() > 0)
{
foreach ($query->result_array() as $row)
{
$row = $query->row_array();
$key= $row['key'];
}
}
for($i=1; $i<=$request;$i++)
{
$userdata=array('key'=>$key);
$this->db->where('id',$id);
$this->db->where('key',$key);
$this->db->insert('users',$userdata);
}
$this->load->model('more_m');
$this->db->set('status', "'approved'",FALSE);
$this->db->where('id',$id);
$this->db->update('user_request');
//die();
redirect('admin/new_user');
}
查询只取了一个键,所以只插入了那个键,而不是取出所有的键,这是一个愚蠢的错误,我没有注意到。
发布于 2015-10-05 06:50:41
在您的示例中,脚本执行将使用以下方法停止:
echo $this->db->last_query(); die();
在第一次插入之后,第二个查询将不会执行。
此外,您还可以调试返回"$request“变量的是什么- var_dump($request);之后您将知道有多少循环。
https://stackoverflow.com/questions/32942517
复制相似问题