2011-09-22 12 views
0

저는 PHP 경험이 풍부한 분입니다.CodeIgniter - mysql while 루프

나는 CodeIgniter 프레임 워크를 선택했다. 지금까지 나는 그것이 어떻게 사용되는지 이해했다. 지금까지 while 루프를 수행 할 수 있기를 원합니다. 내 컨트롤러 내에서

내가 가진 내 모델에서

$this->load->model('Test'); 
$data['result'] = $this->Test->getInfo(); 
$this->load->view('index1', $data); 

를 내가 가지고 :

$result = mysql_query("SELECT * FROM users WHERE last_name='Hart'")or die(mysql_error()); 
$row = mysql_fetch_array($result);  
return $row; 

을 그리고 내보기에 :

echo $result[0]; 

그러나, 이것은 단지 첫 번째 필드를 출력 발견 된 첫 번째 행 내에

데이터베이스 - while 루프에서 정보를 검색하는 데 도움을주십시오.

모델에서 while 루프가 발생합니까? 결과를 정확히 반향시키고 있습니까?

답변

9

실제로 CodeIgniter에 포함 된 ActiveRecord 클래스를 사용하여 원하는 작업을 수행하는 훨씬 쉬운 방법이 있습니다.이 방법을 사용하면 결과 배열을 반환 할 수 있습니다. 여기에 documentation이 있습니다. 또한 application/config/database.php에 설치에 데이터베이스가있을 수 있습니다

$this->db->where('last_name','Hart'); 
$result = $this->db->get('users'); 
return $result->result_array(); 

, 또한 application/config/autoload.php의 데이터베이스 클래스를로드 :

당신의 모델이 될 것

$autoload['libraries'] = array('database'); 

을이 정보를 표시하려면를 사용하여 MVC 패턴을 적절하게 사용하면 컨트롤러가 모델에서 뷰로 가져온 정보를 전달해야합니다. 일반적으로이 작업을 수행하려면 다음을 수행 CodeIgniter는이 라이브러리가 포함되어 같은 응용 프로그램을 만들기로 난 당신이 다이빙을하기 전에 CodeIgniter User Guide을 읽으십시오

<h1>Some HTML goes here</h1> 
<?php 
foreach($myinfo as $row) { 
    echo $row['field']; 
} 
?> 
<p>Some more HTML goes here</p> 

:

$data['myinfo'] = $this->test->getInfo(); 
$this->load->view('test_view',$data); 

그런 다음 당신이 applications/views/test_view.php 너무 같은 뷰를 만들어야합니다 전체 프로세스를 크게 단순화하고 속도를 높입니다. 당신이

뭔가

while($row = mysql_fetch_array($result)) { //save/process data }

그러나 나는 단지 codeigniters를 사용하는 것처럼로 MYSQL_ASSOC 호출 주위에 while 루프를 넣을 필요가 있으므로

+0

좋습니다! db 연결 세부 정보는 어디에 선언해야합니까? 그리고 그걸 똑같이 반향합니까? – ryryan

+1

방금 ​​게시물에 해당 정보를 던졌고 정보를 올바르게 표시하는 데 정보를 추가하기 위해 다시 편집하려고합니다. – Ben

+0

@ hart1994 - db 연결 세부 사항에 대한 문서를 읽으십시오! – Bruce

0

음로 MYSQL_ASSOC 만, 한 번에 다시 한 행을 가져올 것이다 라이브러리를로드하여 데이터베이스를로드 한 다음 사용하십시오.

$this->load->database();
$result = $this->db->query("SELECT * FROM users WHERE last_name='Hart'");
$result = $result->result_array();
//check for data and handle errors
return $result[0]