sql join 관련 질문 입니다.
본문
조인을 해서 뽑고 있는데 페이징이 안나와서요.
어디가 잘못된걸까요?
목록 데이터는 정상적으로 잘 나오는데 카운트가 왜 1이 나오는지 모르겟네요.
$total_count = $row['cnt']; 이 값이 1로 찍히네요 실제 목록데이터는 최소 수백개 인데요..
$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' ";
if (!$sst) {
$sst = "a.no";
$sod = "desc";
}
$sql_order = " group by a.no order by {$sst} {$sod} ";
$sql = " select count(*) as cnt {$sql_common} {$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$rows = 5;
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
답변 4
전체 갯수를 구할 때는
Group by나 order by를 빼세요
sql_fetch_array 로 변경해보세요.
inner join 은 모든 조건이 맞아야 데이터가 나오는 겁니다.
group by를 사용할 경우
$row = sql_query($sql)
$total_count = $row->num_rows
답변을 작성하시기 전에 로그인 해주세요.