2015-10-05 1 views
0

Je veux créer un utilisateur sur le bouton cliquez pour un revendeur. Ceci est mon scénario: J'ai un module revendeur où le revendeur peut demander des utilisateurs. Cette requête a l'id, num_of_users_required et la date de la demande, qui est stockée dans la table appelée user_requests. Maintenant, ces demandes sont récupérées dans le module Admin. Comme ceci:Peut-on passer où condition dans insert dans une instruction sinon quelle est la solution dans Codeigniter?

Requests

maintenant Si admin clique sur oui, alors je veux crée des utilisateurs pour ce revendeur [par exemple: 1Linux-97-500-1 ici est revendeur veulent ainsi créer des utilisateurs pour ce revendeur]

Maintenant, chaque utilisateur est identifié par un champ unique appelé clé. Dans ce champ, j'insère la clé unique du revendeur. Ainsi, chaque utilisateur est mappé à son revendeur par la clé du revendeur pour savoir quel utilisateur appartient à quel revendeur.

maintenant sur mon avis j'ai:

<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> 

Cela génère la vue comme par image ci-dessus maintenant, si je clique oui, alors c'est ma méthode de création d'utilisateurs .:

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

     } 

Le pour boucle insère dans la table utilisateur où clé est la clé du revendeur.

C'est ma requête générée:

INSERT INTO users (key) VALUES ('Rajan-92-1-100-1')

Ainsi, le code fonctionne très bien pour la première demande, mais si Je clique sur la 2ème demande et j'approuve alors il insère l'utilisateur pour le 1er revendeur. Donc je suppose qu'il devrait y avoir un identifiant associé ici.

J'espère que vous avez compris mon problème.

Le tableau Structure:

1) Reseller Tableau

Reseller Table

2) Les utilisateurs Tableau

Users table

Répondre

0

Je faisais une erreur idiote en cherchant la clé du revendeur.

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

     } 

La requête vient extrait une clé pour insérer uniquement cette touche au lieu d'aller chercher toutes les clés, il était une erreur stupide que je ne l'ai pas pris connaissance de.

0

Dans votre exemple, l'exécution du script est arrêté à l'aide:

echo $this->db->last_query(); die(); 

Après la première insertion, la deuxième requête ne s'exécutera pas.

Vous pouvez également déboguer ce qui retourne la variable "$ request" - var_dump ($ request); Après cela, vous saurez combien de boucles sont

+0

que j'ai arrêtée juste pour le débogage. Je voulais juste savoir quelle requête réelle est genored – Rajan

+0

Aussi, si je supprime que je ne ferai pas de différence que le script insère seulement les utilisateurs, il ne sait pas à insérer l'utilisateur pour quel revendeur :( – Rajan

+0

Pouvez-vous ajouter une structure de utilisateurs db table? – Pavel