如果不是Codeigniter中的解决方案,我们可以将insert中的条件传递给语句吗?

时间:2015-10-05 06:31:14

标签: php mysql codeigniter

我想在按钮点击时为经销商创建用户。这是我的场景: 我有一个经销商模块,经销商可以请求用户。此请求具有id,num_of_users_required和请求日期,该日期存储在名为user_requests的表中。现在,这些请求将在管理模块中获取。像这样:

Requests

现在如果管理员点击是,那么我想为该经销商创建用户[例如: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&nbsp<?php echo'<i class="glyphicon glyphicon-trash"></i>';?></a></td>
    <td><a href="" class="btn btn-success"><?php echo  $user->status; ?></td>&nbsp</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循环插入到用户表中,其中key是经销商的密钥。

这是我的查询生成:

INSERT INTO userskey)VALUES(&#39; Rajan-92-1-100-1&#39;)

因此代码适用于第一个请求,但如果我点击第二个请求并批准,那么它会为第一个转销商插入用户。所以我想这里应该有id。

我希望你理解我的问题。

表格结构:

1)经销商表

Reseller Table

2)用户表

Users table

2 个答案:

答案 0 :(得分:0)

在您的示例中,使用以下命令停止脚本执行:

$("#"+activeForm+"#ConsentFormId").val();

首次插入后,第二个查询将不会执行。

你也可以调试返回“$ request”变量 - var_dump($ request);之后你会知道有多少循环

答案 1 :(得分:0)

我在获取经销商密钥时犯了一个愚蠢的错误。

      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');

      }

查询刚刚获取了一个密钥,因此仅插入该密钥而不是获取所有密钥,这是一个愚蠢的错误,我没有注意到。