2014-12-12 2 views
-1

저는 codeigniter를 처음 접했고 문자열이있는 ID 번호를 삽입하는 데 어려움이 있습니다. 누구든지 데이터베이스에 저장하는 방법을 알려줄 수 있습니까?Codeigniter는 ID 번호를 문자열과 함께 데이터베이스에 삽입합니다.

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

은 정말 당신의 도움을 주셔서 감사합니다. 감사!

+1

일부 코드는 다음과 같습니다. (소스를 게시하려면 질문을 편집하십시오.) – Kyslik

+0

몇 가지 코드를 게시하면 도움이됩니다. –

답변

1

그럼에도 불구하고이 사실을 이해하려면 기본 지식을 알아야하기 때문에 이것은 매우 나쁜 질문입니다.

id를 자동 증가로 설정했기 때문에 새 레코드를 삽입 할 때마다 1 씩 증가합니다. 후속 조치는 this을 참조하십시오.

즉, 데이터베이스 (테이블)에 정수 (whole numbers)를 저장한다는 의미이므로 PM 문자열은 거기에 포함되지 않습니다. 문자열을 문의하여 문제를 해결했습니다. 예 : 코드 <td><?php echo "PM00".$u_key->ID; ?></td>.

당신의 솔루션은 단순히 좋지 않습니다. 테이블에 10 개의 레코드가 있으면 어떻게 될까요? 글쎄, 을 표시하는 대신에 PM0010이 될 것입니다. 나는 원하지 않을 것이라고 확신합니다. 선두에 제로 문제를 해결하려면

는 귀하의 경우 기능 str_pad();를 사용

<td><?php echo "PM".str_pad($u_key->ID, '3', '0', STR_PAD_LEFT);?></td> 

, 당신은 이해하고 있는지 확인하려면이 PM001과 PM002 등 테이블에 표시되지 않습니다! 대신 간단한 정수 1, 2, 3을 볼 수 있습니다.

관련 문제