php 질문 드려요
본문
$sql2 = "select max(po_grant_give_point) as max from ".$g5['ph_point_table']." where it_id = ".$list_it_id."'";
if ($list_ph_type1 == "신규") {
$sql2 .= " and po_grant_type = 'new'";
} else if ($list_ph_type1 == "수정") {
$sql2 .= " and po_grant_type = 'move'";
} else if ($list_ph_type1 == "삭제") {
$sql2 .= " and po_grant_type = 'change'";
}
위 소스 설명좀 부탁드려요.
첫줄은 DB 테이블 찾아서 불러오는건 알겠어요.
4,6,8줄은 컬럼에서 불러오는것 같고 컬럼명도 찾았어요.
이해가 안되는건 3,5,7 줄이 화면에 표시를 해주려고 하는 소스인건지 저 list_ph_type1 라는 컬럼에서 값을 가져오는 소스인건지를 몰르겠어요. SQL 들어가서 저 컬럼명을 찾아봤는데 안보여서 더 이해가 안되네요.
답변 2
$g5['ph_point_table'] 테이블 컬럼에 po_grant_type 이 컬럼이 테이블에 없으면 에러 날텐데요?
쓰고 보니 님은 쿼리가 첫번째 줄에서 끝난다고 생각하신건가요?
$sql .= <== 이 코드는 $sql 에 해당 문구를 추가로 넣는거니 실제 쿼리는
"select max(po_grant_give_point) as max from ".$g5['ph_point_table']." where it_id = ".$list_it_id."' and po_grant_type = 'new'"; // 혹은 "move", "change"
처럼 되겠죠
!-->$sql2 .= " and po_grant_type = 'new'";
는 $sql2 = $sql2 . " and po_grant_type = 'new'"; 의 의미입니다.
$list_ph_type1 의 값이 '신규'라면 최종적으로 실행되는 쿼리는
select max(po_grant_give_point) as max
from ".$g5['ph_point_table']."
where it_id = ".$list_it_id."'
and po_grant_type = 'new'
가 됩니다.
$list_ph_type1 은 DB 에서 가져온 값이 아닌,
웹 페이지에서 사용자의 액션에 의해서
get 또는 post 방식으로 넘겨진 값으로 추측됩니다.
가령 A 페이지에서
<input type="radio" name="list_ph_type" value="신규"> 신규
<input type="radio" name="list_ph_type" value="수정"> 수정
<input type="radio" name="list_ph_type" value="삭제"> 삭제
의 폼 엘리먼트가 있고, 사용자가 '수정'에 체크한 상태로 B 페이지로 서브밋 하면..
B 페이지에서 $list_ph_type 는 '수정'값을 가지게 됩니다.
폼 데이터 전송에 의한 변수가 아닐 수도 있는데.. 그런 경우에는.. 최초에 $list_ph_type 변수에 값을 저장하는 구문을 찾아야 됩니다. (ex. $list_ph_type = "수정"; )