2012-07-25 2 views
0

MVC 주위에서 머리를 얻으려고합니다. 기본적으로 작동하는 곧은 PHP/mysql 페이지가 있습니다. select * FROM table1 다음을 반복합니다. 결과는 을 설정하고 각 루프에코드 Igniter - MVC 모델로 변환 - 결과 집합 루프 내에서 선택

코드는 어떤 도움 아래로입니다 ..에 .. 하위 프로젝트 정보를 찾기 위해 가입

를 실행하지만이를 분할하는 방법을 알아낼과 MVC에서 그것을 할 수 없습니다 또는 올바른 방향의 포인터를 얻을 수 있습니다!

mysql_connect(localhost,$username,$password); 
@mysql_select_db($database) or die("Unable to select database"); 
$query="SELECT * FROM building"; 
$result=mysql_query($query); 

$num=mysql_numrows($result); 

$i=0; 
while ($i < $num) { 
    //for loop make a table 
    //this is the heading info 

    $b_id=mysql_result($result,$i,"id"); 
    $address=mysql_result($result,$i,"address"); 
    $description=mysql_result($result,$i,"description"); 

?> 
    <table width="772px" border="0" align="center" cellpadding="5" cellspacing="0"> 
    <tr bgcolor="#4682B4" height="50"> 
     <td width="5%"></td> 
     <td><font size="4" face="tahoma" color="white"><strong><? echo $address; ?><a href="http://localhost:8888/project-add.php?b_id=<? echo $b_id; ?>">Add Project</a></strong></font></td> 
     <td bgcolor="#4682B4" align="center" width="50%"><input id="lnk<? echo $i; ?>" type="button" value="[+] Expand" onclick="toggle_visibility('tbl<? echo $i; ?>','lnk<? echo $i; ?>');"></td> 
    </tr> 
    <tr> 
     <td colspan="3"> 
     <table width="103%" border="1" cellpadding="5" cellspacing="0" id="tbl<? echo $i; ?>" class="tbl"> 

     <? 
     $query="SELECT project.id AS p_id, project.name AS p_name, project.description AS p_des, project.building_id as p_b_id, building.id AS b_id, building.address AS b_name 
      FROM project JOIN building 
      ON project.building_id = building.id 
      WHERE building_id='$b_id'"; 
     $proj_result=mysql_query($query); 
     $proj_num=mysql_numrows($proj_result); 

     $j=0; 
     while ($j < $proj_num) { //while 1 

      $p_id=mysql_result($proj_result,$j,"p_id"); 
      $p_name=mysql_result($proj_result,$j,"p_name"); 
      $p_des=mysql_result($proj_result,$j,"p_des"); 
      $b_name=mysql_result($proj_result,$j,"b_name"); 


     ?> 
     <tr> 
     <td width="5%"></td> 
     <td width="45%"><? echo $p_name; ?></td> 
     <td width="50%" align="center">XXXXXXX</td> 
     </tr> 

     <? 
      $j++; 
     } //end while 1 
     ?> 
     </table> 
     </td> 
    </tr> 
    </table> 
    <? 
    $i++; 
} 



mysql_close(); 
?> 
+0

을하는 것은 정직하게 보지 않는다 Codeigniter 또는 프레임 워크를 사용하고 있다는 것을 나타내는 것은 없습니다. 처음에는 데이터베이스에 연결하는 방법에 대한 사용자 가이드를 읽으십시오. 아직 컨트롤러를 만들지 않았습니까? 모델을 만드는 방법에 대해 읽어보십시오. –

+0

MVC를 이해하려고한다면 CodeIgnater를 사용하는 것이 가장 마지막 일 것입니다. –

+0

안녕하세요 웨슬리 -이 코드 점화 장치가 전혀 아닙니다! 미안 해요 내가 더 분명 했어야 - 코드 점화기로 변환하려고했지만 모델 섹션에 대해 갈 방법을 알아낼 수 없었다! – Keiiz

답변

1

기존 코드베이스 위에 프레임 워크를 추가하는 것은 결코 좋은 일이 아닙니다. 특히 CodeIgniter처럼 근본적으로 손상된 것을 사용하고 있다면.

대신 OOP와이 패러다임의 원리와 법칙을 연구해야합니다. 같은 것들은 SOLIDLoD입니다.

고대의 mysql_* API를 살펴보아야 할 또 다른 사항은 다음과 같습니다. 더 이상 유지 관리되지 않습니다. 커뮤니티는 심지어 deprecation을 추진하기 시작했으며 이는 설명서에 red box으로 분명히 드러납니다. PDO 또는 MySQLi을 사용하는 것이 좋습니다. PDO를 선택한 경우 here is good tutorial.

다음 것은 응용 프로그램 논리와 HTML이 분리되어 있습니다. PHP 자체는 훌륭한 템플릿 언어입니다. 그것을 이용하십시오. This article이 도움이 될 수 있습니다.

또한 MVC 모델의 주제에 대해서는 this comment이 유용 할 수 있습니다.

+0

조언을 주셔서 감사합니다. – Keiiz

+0

저는 "CodeIgniter"처럼 근본적으로 손상된 것에 대해 더 많이 알고 싶습니다. 어떤 방식으로 프레임 워크 자체가 (개발자의 사용이 아닌) "근본적으로 망가졌습니다"? –

+0

분명히 내 의견을 읽었습니까? 응답 없음? –

0

좋아 사람들이 내 솔루션에 비명 위하여려고하는 경우에 알고 있지만 여기에 내가 그 일을 결국 방법은 없습니다 : 당신은 아무것도 시도했습니다처럼 덕분에 모든 응답

public function index() 
{ 

    $data['building'] = $this->building_model->get_building(); 

    $this->load->view('templates/header', $data); 

    foreach ($data['building'] as $building_item) 
    { 
      $data['address'] = $building_item['address']; 
      $data['id'] = $building_item['id']; 
      $this->load->view('building/tbl1', $data); 
      $data['project'] = $this->building_model->get_project($building_item['id']); 
      $this->load->view('building/tbl2', $data); 
      $this->load->view('building/tbl3');    

    } 

    $this->load->view('templates/footer'); 

}