CI 묻고 답하기

제목 [초보] 쿼리 결과값을 받아오면 어떤 형태로 저장이 되는건가요?
글쓴이 칸나 작성시각 2012/07/26 02:13:39
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 16229   RSS
$companyName = $_POST['companyName'];

$companyQuery = $this->db->query('select ID from company where companyName = " '. $companyName . ' " ');
 
// 위의 코드를 SQL 콘솔창에서 돌리면 예를 들어서 ID는 2 뭐 이런식으로 단일값이  나옵니다.
 
        $companyID = array();
        
       foreach($companyQuery->result() as $obj){
            $companyID[] = $obj;
        }

이렇게 함으로써 companyID배열안에 자료가 들어간것은 맞는데

저는 단순히 저 2라는 수만 배열에서 빼내고 싶은데 어떤 함수를 써야될지 모르겠네요

배열의 키값하고 밸류값이 뭔지 구조를 보고 싶은데 

그냥 

echo $companyID 하면


딸랑 Array 라고 나오네요 으으..


여러가지 혼자서 추측한 결과로는

companyID[0] => 아무값도 없음

혹시나

ID가 키값이고 value값으로 2가 저장되지 않았을까 해서

companyID['ID'] => ID 라는 index가 없다는 에러....



아 추가로

echo key($companyID);

하니까 0이 나오던데 그러면 쿼리문 자체가 잘못된건가요? 으으
 다음글 ci이의 적합한 용도는? (2)
 이전글 ci세상님께 질문드립니다. (2)

댓글

한대승(불의회상) / 2012/07/26 08:51:54 / 추천 0
echo $this->db->query('select ID from company where companyName = " '. $companyName . ' " ')->result()->ID;
 
ci_chobo / 2012/07/26 08:54:20 / 추천 0
print_r($compnayID) 하면 배열값을 보실수 있을거예요

변종원(웅파) / 2012/07/26 09:08:25 / 추천 0
매뉴얼  http://cikorea.net/user_guide_2.1.0/database/results.html 잘 보시면 
뭐를 빠트리셨는지 아실겁니다.

쿼리만 만드시고 결과는 생성하지 않았으니 데이터가 당연히 없습니다.

그리고 데이터를 가공할 것이 아니면 foreach 이용하지 마세요. 낭비입니다.

불상님 말씀처럼만 해도 원하는 데이터 나옵니다.
칸나 / 2012/07/26 19:34:38 / 추천 0
 답변 감사합니다.

하지만 
echo $this->db->query('select ID from company where companyName = " '$companyName ' " ')->result()->ID; 

사용시에 

<p>Severity: Notice</p>
<p>Message:  Trying to get property of non-object</p>
<p>Filename: controllers/user.php</p>
<p>Line Number: 102</p>

에러가 뜹니다 흑흑
칸나 / 2012/07/26 19:47:14 / 추천 0
print_r($companyID)하면 분명히

  Array ( [0] => stdClass Object ( [ID] => 1 ) )

이렇게 뜹니다만

저 1값을 왜 저는 못 빼내는걸까요 흑흑
도라에몽 / 2012/07/27 15:56:29 / 추천 0
$companyQuery->result()  는 오브젝트 이구요.. 
$companyQuery->result_array()  가 array로 뽑는거라서...
Array가 편하시면 Array로 소스를 조금 수정해보시면 될것 같네요. ^^