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

sql join 관련 질문 입니다. 채택완료

웹프리죤 2년 전 조회 2,062

조인을 해서 뽑고 있는데 페이징이 안나와서요.

어디가 잘못된걸까요?

 

목록 데이터는 정상적으로 잘 나오는데 카운트가 왜 1이 나오는지 모르겟네요.

$total_count = $row['cnt']; 이 값이 1로 찍히네요 실제 목록데이터는 최소 수백개 인데요..

 

</p>

<p>$sql_common = " from tbl_nft a inner join `tbl_nft_file` b on a.no = b.no where a.is_copied_to_market = '1' and substr(b.reg_date, 1, 10) <= '2022-09-14' ";</p>

<p> </p>

<p>if (!$sst) {

    $sst = "a.no";

    $sod = "desc";

}</p>

<p>$sql_order = " group by a.no order by {$sst} {$sod} ";</p>

<p>$sql = " select count(*) as cnt {$sql_common} {$sql_order} ";

$row = sql_fetch($sql);

$total_count = $row['cnt'];</p>

<p>$rows = 5;

$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산

if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)

$from_record = ($page - 1) * $rows; // 시작 열을 구함</p>

<p>

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

답변 4개

채택된 답변
+20 포인트

전체 갯수를 구할 때는

Group by나 order by를 빼세요

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

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

2년 전

group by를 사용할 경우

$row = sql_query($sql)

$total_count = $row->num_rows

 

 

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

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

e
2년 전

inner join 은 모든 조건이 맞아야 데이터가 나오는 겁니다.

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

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

w
2년 전
sql_fetch_array 로 변경해보세요.
로그인 후 평가할 수 있습니다

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

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

로그인