CI 묻고 답하기

제목 CI 배열에 담기
글쓴이 루비콘 작성시각 2016/01/26 10:31:08
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 14706   RSS

CI를 사용해서 디비에 저장된 값을 불러오려고 하는데

질문있습니다.

 

그전까지는 

<?php
	if(count($result)){
		foreach($result as $list){
?>
	<center class="edu_input01">
		<strong >[<?=@$list['pname']?>]</strong>님이 작성하신 게시글입니다.
	</center><br>
		<tr>
			<td class="edu_input03">
				*학원명
					<?=@$list['ename']?>
			</td>
			<td class="edu_input03">
				원장성명
					<?=@$list['pname']?>
			</td>
		</tr>
		<tr>
			<td class="edu_input03">
				*휴대 전화
					<?=@$list['etcOption']['pnum1']?> -
					<?=@$list['etcOption']['pnum2']?> -
					<?=@$list['etcOption']['pnum3']?>
			</td>
			<td class="edu_input03">
				일반 전화
					<?=@$list['etcOption']['num1']?> -
					<?=@$list['etcOption']['num2']?> -
					<?=@$list['etcOption']['num3']?>
			</td>
		</tr>

 

이런식으로 뷰단에서 foreach 문을 사용해서 출력을 시켰습니다만

 

foreacch 문을 사용하지 않고 

 

예를 들면 <?=@$viewData['ename']?> <?=@$viewData['etc_option']['pnum1']?> 이런식으로 사용하려면 어떻게 하는게 좋을까요

 

지금상태로는 foreach 문을 사용해야만 값을 출력 할 수 있습니다.

 

컨트롤러

		//게시글 수정
		if($urlArray['nextMode']=="mod")
		{
			$data['admin'] = $this->CI->dgc_edu_trade_1_0_m->admin_list_product($admin);
			$data['viewData'] = $this->CI->dgc_edu_trade_1_0_m->readlist($urlArray['no']);

			$data['view'] = "user_list_update_v";
			return $this->render($data);
		}

 

모델단

	function readlist($no){
	
		$this->db->select("a.*, b.product_name");
		$this->db->from("dgc_edu_trade_1_0 AS a");
		$this->db->join("dgc_edu_trade_product AS b","a.product_no = b.no");
		$this->db->where("a.no",$no);
		$result = $this->db->get()->result_array();

//		echo "<pre>";
//		print_r($result);
//		echo "</pre>";
		//etcOption 처리
	foreach($result as $key=>$list){
		$result[$key]['etcOption'] = unserialize($list['etc_option']);
	}
		return $result;
	}

 

이런식으로 코드는 있습니다만

도와주시면 감사하겠습니다.

 

마지막으로 불러온 값이 이런식으로 출력된다는걸 보여드리고 싶어서 첨부 합니다.

 다음글 ci chapter7 사용자 인증(로그인) 문의 (3)
 이전글 뷰단에서 출력이 왜 안되는지 이유를 모르겠습니다. (1)

댓글

변종원(웅파) / 2016/01/26 16:15:16 / 추천 0

저번에도 답변했던 것 같습니다만.. ^^;

 

데이터베이스 매뉴얼에서 result_array()와 row_array() 찾아서 비교해보세요.

루비콘 / 2016/01/26 16:43:21 / 추천 0

//웅파 

그래서 row_array 에 담았더니 결과가 이상하게 나옵니다 ㅠ

루비콘 / 2016/01/26 16:51:33 / 추천 0
 [no] => 4
            [pwd] => 23
            [ename] => 23
            [pname] => 23
            [num] => 31
            [addr] => ��기 화성시 장안면 어은리 3
            [school] => 44
            [title] => 23
            [product_no] => 
            [area_group] => 계양구
            [deposit] => 231
            [rental] => 231
            [list] => 23
            [etc_option] => :36:{s:4:"name";s:3:"123";s:5:"pname";s:3:"123";s:5:"pnum1";s:3:"131";s:5:"pnum2";s:2:"23";s:5:"pnum3";s:3:"123";s:4:"num1";s:3:"123";s:4:"num2";s:3:"123";s:4:"num3";s:3:"123";s:8:"postcode";s:5:"18584";s:7:"address";s:38:"경기 화성시 장안면 어은리 3";s:8:"address2";s:3:"123";s:6:"school";s:3:"444";s:5:"title";s:3:"123";s:5:"group";s:1:"3";s:5:"sido1";s:15:"인천광역시";s:6:"gugun1";s:9:"계양구";s:5:"aaaaa";s:15:"인천광역시";s:5:"floor";s:3:"123";s:9:"sub_floor";s:3:"123";s:6:"pyeong";s:3:"123";s:10:"sub_pyeong";s:3:"123";s:7:"deposit";s:4:"1231";s:6:"rental";s:4:"1231";s:8:"p_school";s:3:"123";s:10:"ele_school";s:3:"123";s:10:"mid_school";s:3:"123";s:9:"hi_school";s:3:"123";s:10:"uni_school";s:3:"123";s:5:"sales";s:3:"123";s:6:"profit";s:3:"123";s:7:"radio01";s:3:"유";s:3:"car";s:3:"123";s:7:"premium";s:3:"123";s:4:"list";s:3:"123";s:3:"pwd";s:3:"123";s:11:"main_submit";s:6:"확인";}
            [reg_date] => 016-01-26 14:47:15
            [product_name] => 3
        )

)

 

이런식으로 빠지는 값도 생기고 값또한 이상하게 불러옵니다 ㅠ

변종원(웅파) / 2016/01/26 16:55:07 / 추천 0

몇번째 데이터를 사용하고 싶은건지 모르니 row_array()를 사용하라고 말씀드린거구요.

 

어떤 목적으로 그렇게 작업하시려는건데요? 

 

리스트는 당연히 result_array()로 불러와야 여러 개를 출력할 수 있고

row_array()는 하나의 결과만 가져오는 거구요.

 

만약 어떤 종합결과를 뷰 상단에 출력하고 하단에 리스트 형태로 출력을 해야하는 것이면

따로 데이터를 가져와서 사용해야 합니다.

 

윗단은 row_array()로 아래 리스트는 result_array()로.

 

루비콘 / 2016/01/26 17:01:24 / 추천 0

제가 하려고 하는건 그냥 사용자 페이지 입니다.

게시글을 등록하고 사용자가 입력한 게시글을 보는 그런 사용자 페이지 인데 ㅠㅠㅠ 

그래서 row_array 를 사용해야 하는게 맞는거 같은데

애매하네요 ㅠㅠ하루종일 고민하고있지만 ㅠㅠ

그전까지는 result_array 로 그냥 불러와서 foreach 써서 자동으로 [0]번째 값 체크하게 해서 뿌려줬었는데

 

foreach 를 사용하지 않고 db에서 있는그대로 불러와서 출력을 해보고 싶어서 이렇게 하고 있습니다.

한대승(불의회상) / 2016/01/26 17:06:22 / 추천 0

db에 있는 그대로 불러 온다는게 어떤 의미 인가요?

루비콘 / 2016/01/26 17:11:21 / 추천 0

그러니까 row_array()만 똑바로 불러오면 될거 같은데 그게 어디서 꼬여버린건지 참 막막하네요 ㅋㅋㅋ

그냥 말씀드린것처럼 row_array를 사용해서 db에서 긁어온 한줄을 그대로 사용하고 싶은겁니당!

 

루비콘 / 2016/01/26 17:17:50 / 추천 0

아 방금 해결 되었습니다 etc_option 이 문제였네요 ㅠㅠ

    $result['etc_option'] = unserialize(@$result['etc_option']);

이렇게 수정하니까 정상 출력 됩니다 ㅎㅎㅎ

웅파님 언제오시나 ㅠㅠㅠㅠ 하루종일 노심초사 했었는데 

감사합니다 ㅠㅠㅠ