我是编码点火器的新手,在插入带有字符串的ID号时遇到问题。谁能帮我如何将其保存到数据库中?
例如 PM0001
每次我将其保存到数据库中时,我的列 ID 中只出现数字"1",但是当我从数据库中检索它时,它会在 html 表中显示 ID 号"PM0001"。
我的控制器:
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
我真的很感激你的帮助。谢谢!
尽管这是一个非常糟糕的问题,因为为了理解这一点,您需要了解基础知识。
您可能确实将id设置为自动递增,这意味着每次插入新记录时,它都会递增1。要跟进,请参阅此处。
这意味着您将整数(整数)存储在数据库(表)中,因此字符串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...