我是codeigniter的新手,并且在插入带有字符串的ID号时遇到问题。任何人都可以帮我如何将其保存到数据库中吗?
实施例。 PM0001
每次我将它保存到数据库中只有数字" 1"出现在我的列ID中,但是当我从数据库中检索它时,它会显示ID号" PM0001"进入html表。
我的控制器:
public function enroll(){
$data['title'] = "enroll";
$this->load->model('addschool_model');
$data['school'] = $this->addschool_model->getAll();
$this->load->view('admin/view_enroll', $data);
$this->form_validation->set_rules('fname', 'First name', 'required');
$this->form_validation->set_rules('lname', 'Last name', 'required');
$this->form_validation->set_rules('contact', 'Contact', 'required');
$this->form_validation->set_rules('address', 'Address', 'required');
if($this->form_validation->run()==FALSE) {
$this->load->view('admin/view_enroll');
} else {
$this->load->model('stud_model');
$udata['school'] = $this->input->post('school');
$udata['pword'] = $this->input->post('password');
$udata['fname'] = $this->input->post('fname');
$udata['lname'] = $this->input->post('lname');
$udata['contact'] = $this->input->post('contact');
$udata['address'] = $this->input->post('address');
$res = $this->stud_model->insert_user_to_db($udata);
if ($res){
redirect('admin/enroll');
}
}
}
我的模特:
public function insert_user_to_db($udata) {
return $this->db->insert('students', $udata);
}
我的观点:
<tr class="data" >
<td><?php echo "PM00".$u_key->ID; ?></td>
<td><?php echo $u_key->PWORD; ?></td>
<td><?php echo $u_key->SCHOOL; ?></td>
<td><?php echo $u_key->FNAME; ?></td>
<td><?php echo $u_key->LNAME; ?></td>
<td><?php echo $u_key->CONTACT; ?></td>
<td><?php echo $u_key->ADDRESS; ?></td>
<td width="40" align="left"><a id="action" href="#" onClick="show_confirm('edit',<?php echo $u_key->ID; ?>)"><span class="glyphicon glyphicon-edit" aria-hidden="true"></a></td>
<td width="40" align="left"><a id="action" href="#" onClick="show_confirm('delete',<?php echo $u_key->ID; ?>)"><span class="glyphicon glyphicon-remove" aria-hidden="true"></a></td>
</tr>
我认为我的观点还可以,因为该表显示了我想要显示的内容。 我只希望ID在我的数据库中显示与我视图中的表格相同。
我的数据库中的ID:ID = 1 我的表格视图中的ID:ID = PM001
我真的很感谢你的帮助。谢谢!
答案 0 :(得分:1)
尽管这是一个非常糟糕的问题,因为为了理解这一点,你需要了解基本原理。
您可能已将您的ID设置为自动递增,这意味着每次插入新记录时它都会增加1。要跟进,请参阅this。
这意味着您在数据库(表)中存储整数(whole numbers),因此字符串PM
不会存在。您通过联系字符串来解决问题;您的代码<td><?php echo "PM00".$u_key->ID; ?></td>
中的示例。
您的解决方案根本不好,因为当您在表中有10条记录时会发生什么?好吧,而不是显示PM010
它将是PM0010
我打赌你不想要那个。
要修复前导零问题,请在您的案例中使用函数str_pad();:
<td><?php echo "PM".str_pad($u_key->ID, '3', '0', STR_PAD_LEFT);?></td>
为确保您理解,您不会在表格中看到PM001和PM002等!相反,你会看到简单的整数1,2,3 ...