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