2013-04-10 3 views
0

컨트롤러와 뷰에 전달하기 전에 조작 할 수있는 정보가 데이터베이스에 있습니다. 예를 들어 나는 나이로 전환하고 싶습니다. codeigniter에서 db 결과를 조작합니다.

$sql = ('SELECT username, birthdate, profile_text FROM users WHERE id = ?'); 

$q = $this->db->query($sql, $this->session->userdata('user_id')); 

if ($q->num_rows() === 1) { 
    return $q->row(); 
} 

그래서 그것을 반환하기 전에, 나는 개체의 birthdate를 조작하고 싶습니다 :

이것은 내가 지금까지있는 것입니다.

In here I found 행의 두 번째 매개 변수로 문자열을 전달하면 클래스를 사용하여 수행 할 수 있습니다. 그러나 나는 그 일을 어떻게 할 것인지, 내가 그 수업을 어디에 두 겠는 지 전혀 모른다.

작업을 쉽게 수행 할 수 있다면 row_array()으로 결과를 얻을 수도 있습니다.

답변

2

시대에 생년월일을 변환하는 기능을 확인하십시오 : 당신은 사용자 정의 개체를 설정할 수 있습니다

public function convertToAge($birthdate){ 
     $birthDate = explode("/", $birthDate); 

     $age = (date("md", date("U", mktime(0, 0, 0, $birthDate[0], $birthDate[1], 
     $birthDate[2]))) > date("md") ? ((date("Y")-$birthDate[2])-1):(date("Y")- 
$birthDate[2])); 
return $age 
} 

이 같은 문제를 해결하기 위해 :

$sql = ('SELECT username, birthdate, profile_text FROM users WHERE id = ?'); 

$q = $this->db->query($sql, $this->session->userdata('user_id')); 

if ($q->num_rows() === 1) { 
    $userobject = $q->row(); 
} 
$userobject->birthdate = $this)>convertToAge($userobject->birthdate); 
return $userobject 

을 할 수있는 응용 프로그램의 다른 부분에서 다른 개체와 마찬가지로 사용자 개체를 검색하고 생모를 얻으십시오.

$userobject = $this->model->getuserobject() 
$birthdate = $userobject->birthdate 

ope 도움이 되시면 더 많은 질문을 주시기 바랍니다 =)

+0

확실히 해결책입니다. 나는 그때 내가 예를 들어 함수를 통해 그것을 조작하는 방법을 알고 싶습니다? – jah

+0

$ userobject 변수로 어떻게 할 것인가에 대한 예를 들어, 연령 문제는 실제로 질문 안에 없습니다. 정말 도움을 주셔서 감사합니다 (: – jah

+0

난 약간 혼란 스러워요, 당신은 $ userobject-> birthdate를 통해 생식을 편집하고 검색 할 수 있습니다.) 함수를 통해 그것을 조작한다는 것은 무엇을 의미합니까? – Crowlix

0

도움이되는지 확실하지 않습니다. 나는이 같은 모델에 약간의 기능을 둘 것 :

public function datetoage() 
{ 
$birthDate = $datetouse; 
     //explode the date to get month, day and year 
     $birthDate = explode("/", $birthDate); 
     //get age from date or birthdate 
     $age = (date("md", date("U", mktime(0, 0, 0, $birthDate[0], $birthDate[1], $birthDate[2]))) > date("md") ? ((date("Y")-$birthDate[2])-1):(date("Y")-$birthDate[2])); 
     return $age; 
} 

다음 단지의 경우 $ 시대 = datetoage 같은 쿼리 데이터에 적용 ($ 행 [생년월일]);

관련 문제