채택완료

sql 카운트가 에러? 가 납니다.

2022-04-12 (화) 11:48:11 1,571
Copy
$sql = "
            select
            mb_id,
            mb_1,
            mb_name,
            mb_level, 

            count(*) as cnt
            from {$g5['member_table']}
            where mb_1 = '{$stx1}'
        ";

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

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

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

|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트
Copy
$sql = " select mb_id, mb_1, mb_name, mb_level, count(*) as cnt from {$g5['member_table']} where mb_1 = '{$stx1}' "; 

 

<--- count를 쓰면 레코드를 여러개 가져오지않습니다

      이 경우   mb_id, mb_1, mb_name, mb_level 이런 필드 추출은 아무 의미가 없습니다

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

 

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

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

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

 

$sql = " select mb_id, mb_1, mb_name, mb_level from {$g5['member_table']} where mb_1 = '{$stx1}' "; 

$qq =sql_query($sql);

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

while($row=sql_fetch($qq)) print_r($row);
]
2022-04-12 (화) 11:51:03

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

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

답변에 대한 댓글 2개

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

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