쿼리문중에 이헤 안되는 부분이 있어 질문 드립니다.
본문
$sql = " select a.*, count(b.bo_subject) as cnt {$sql_common} {$sql_order} limit 0, {$rows} ";
// {$sql_common}조건에 {$sql_order} 순으로 a .전체, b.bo_subject 수를 0부터 {$rows} 만큼 나타내서 $sql 에 저장해라.
$row = sql_fetch($sql);
if($row[cnt] > 0)
as cnt 가 무엇을 의미하나요? as cnt 가 없으면 문장이 이해가 되는데 다음 코드 if문에서 $row[cnt] > 0 조건이 있어서 질문을 드립니다.
그리고 한가지 더 질문 드립니다.
for ($i=0; $row = sql_fetch_array($result); $i++) {
$list[$i] = get_list($row, $board, $latest_skin_url, $subject_len);
}
위에 get_list 함수에서
$row 는 행, $subject_len 는 제목의 길이를 말하는거 같은데요.
$board 는 테이블 전체를 의마하는거 같은데요. 확실하게 모르겠습니다.
$latest_skin_ur 는 게시판 제목 주소 인가요? 아니면 게시판에 작성된 글 제목 주소인가요?
죄송하지만 $board 와 $latest_skin_ur 이 정확히 무엇을 의미하는지 알려주시면 감사하겠습니다.
답변 3
count(b.bo_subject) as cnt
count로 숫자를 가지고 오는걸 사실상 sql_fetch_array함수로 배열로 가지고 오면 cnt라는 필드를 (가상?)이라고 해야 되나해서 배열에서 cnt 라는 키 값에 데이터가 들어가져서 가지고옵니다.
저도 정확하게는 설명은 못하므로 대략적으로 말하자면 저 갯수를 cnt라는 가상키에 넣어 둔거라고 생각하시면 됩니다.
$board는 테이블명입니다. 예) g5_write_xxxxx 여기서 xxxx 이부분입니다.
$latest_skin_url 은 스킨 경로 url을 말합니다. ./skin/latest/xxxx 여기서 xxx는 스킨 폴더명입니다.
cnt는 count(b.bo_subject) bo_subject 갯수를 의미합니다
$board는 g5_board 테이블이고
$latest_skin_url은 최신글 스킨 url입니다
별명이죠
흔히 테이블 조인을 하면 같은 필드명일 경우 이렇게 사용합니다.
A.num
B.num
설계상 저렇게 같은 필드가 다른 테이블에 존재하는걸 쿼리작업하려면
A.num as f_num, B.num as s_num
이런식으로 하고서
아래서는
f_num , s_num 를 사용하죠....
앞으로는 이렇게 부르겠다 라고 이해하시면 되세요.
도움이 많이 되는게 테이블 설계에는 num이 맞지만
상황에 따라 다르게 지칭해야 이해가 쉬울때가 있거든요....