Search code examples
phpcodeigniteractive-directorycodeigniter-2codeigniter-3

Generating a range of numbers using code igniter in a for loop and saving in database


Iam trying to generate random numbers in codeigniter using a for loop. Generated numbers should be saved in database. In my code only one row is added in database. below is my code.

View

  <form action="<?php echo site_url('/Gen/gen_num'); ?>" method="post">
  <select name="country_code_id" class="form-control show-tick" required>
   <option value="">263</option>
    </select>
    <select name="mobile_operator_prefix_id" class="form-control show-tick" required>
     <option value="0">772</option>
     <option value="1">774</option>
     <option value="2"> 774</option>
    </select>
   <input type="hidden" name="mobile_number" placeholder="Mobile Number">                                                            
  <input type="text" class="form-control" name="quantity" placeholder="How many numbers ?" required>
  <button class="btn btn-block bg-pink waves-effect" type="submit">SUBMIT</button>
   </form>

Contoller

$quantity = $this->input->post('quantity');
for ($x=0; $x<$quantity; $x++) {   
$mobile_number = rand(10000, 99999);
$data = array(
           'mobile_operator_prefix_id' => $this->input->post('mobile_operator_prefix_id'),
           'country_code_id' => $this->input->post('country_code_id'),
            'mobile_number' => $mobile_number,
 );
$this->Gen_model->save_number($data);  
}

Model

function save_number($data){
                        $this->db->insert('mobile_numbers', $data);
                        }

Solution

  • your code looks fine - you just have to remove your semicolon after your for loop - try this instead

    $quantity = $this->input->post('quantity');
    for ($x=0; $x<$quantity; $x++)
    {   
        $mobile_number = rand(10000, 99999);
        $data = array(
            'mobile_operator_prefix_id' => $this->input->post('mobile_operator_prefix_id'),
            'country_code_id' => $this->input->post('country_code_id'),
            'mobile_number' => $mobile_number,
        );
        $this->Gen_model->save_number($data);  
    }
    

    For better understanding you can take a look at this PHP Sandbox example