테스트 사이트 - 개발 중인 베타 버전입니다

sql 카운트가 에러? 가 납니다. 채택완료

메르시아 3년 전 조회 1,398

</p>

<p>        $sql = "

            select

            mb_id,

            mb_1,

            mb_name,

            mb_level, </p>

<p>            count(*) as cnt

            from {$g5['member_table']}

            where mb_1 = '{$stx1}'

        ";</p>

<p>

 

count(*) as cnt 를 빼면 정상적인 값이 나오는데

count(*) as cnt 를 넣으면 값이 1개뿐이 안나오네요

 

개수를 세고 싶은데 count를 넣으면 값이 한개만 나옵니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
3년 전

</p>

<p><span class="token variable">$sql</span> <span class="token operator">=</span> <span class="token double-quoted-string string">" select mb_id, mb_1, mb_name, mb_level, count(*) as cnt from <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$g5</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'member_table'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span> where mb_1 = '<span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$stx1</span><span class="token punctuation">}</span></span>' "</span><span class="token punctuation">; </span></p>

<p> </p>

<p><span class="token punctuation"><--- </span>count를 쓰면 레코드를 여러개 가져오지않습니다</p>

<p><span class="token punctuation">      이 경우  </span> mb_id, mb_1, mb_name, mb_level 이런 필드 추출은 아무 의미가 없습니다</p>

<p>      그냥 테이블에 등록 된 순서에서 조건에 맞는 맨 앞의 것을 가져옵니다</p>

<p> </p>

<p> 위의 쿼리문은 $row=sql_fetch($sql); 하면 $row['cnt'] = 10 하나만 나와야 됩니다</p>

<p> 조건이 $stx1인 것을 count 하는데 더 이상 무엇이 필요한가요?</p>

<p> 카운트와 조건에 맞는 레코드 전체를 구하려면 다음처럼 합니다</p>

<p> </p>

<p><span class="token variable">$sql</span> <span class="token operator">=</span> <span class="token double-quoted-string string">" select mb_id, mb_1, mb_name, mb_level from <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$g5</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'member_table'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span> where mb_1 = '<span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$stx1</span><span class="token punctuation">}</span></span>' "</span><span class="token punctuation">; </span></p>

<p>$qq =sql_query($sql);</p>

<p>$cnt = sql_num_rows($qq); //전체 갯수</p>

<p>while($row=sql_fetch($qq)) print_r($row);</p>

<p>
]

 

 

 

     

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

갯수(회원명수)를 세면 당연히 숫자 하나만 나와야 하는 거 아닌가요?

어떤 갯수를 원하시는 건가요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

메르시아
3년 전
count(*) as cnt 를 넣지 않을땐 하위 모든 리스트가 나오는데.. 약 10개정도
count(*) as cnt 를 넣으면 값이 1개만 나오고 있습니다.
엑스엠엘
3년 전
DBMS(mysql)의 당연한 결과입니다.
https://dreamlog.tistory.com/532
한번 살펴 보세요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인