안녕하세요 질문하나만 여쭤볼께요( 초보입니다.. )

안녕하세요 질문하나만 여쭤볼께요( 초보입니다.. )

QA

안녕하세요 질문하나만 여쭤볼께요( 초보입니다.. )

본문

질문양이 좀많아요^^;;;; 다소 귀찬으시더라도,,, 답변 부탁드립니다  ㅠㅠ






//sh_category.php 시작
$sql_common_len = " from sh_category ";
$sql_search_len = " where ca_no > '4' ";
if (!$sst_len) {
    $sst_len = "ca_id";
    $sod_len = "asc";
}
$sql_order_len = " order by {$sst_len} {$sod_len} ";
 
// 대분류  $row_len2
$sql_len2 = " select * {$sql_common_len} {$sql_search_len} and length(ca_id) = '2' {$sql_order_len} ";



//sh_category.php 끝​
 
<?php
$result_len2 = sql_query($sql_len2); 
for ($i_len2=1; $row_len2=_array($result_len2); $i_len2++) {// 대분류
if(!$row_len2['ca_link']){//대분류 링크 없으면 소분류 첫번째로 
	$row_2 = (" select * from sh_category where LENGTH(ca_id) = '4' and SUBSTRING(ca_id,1,2) = '{$row_len2[ca_id]}' order by ca_id asc ");
	$row_len2['ca_link'] = $row_2['ca_link'];
}
if($row_len2['ca_link_target'] == 'blank'){$list_link = " target='_blank' ";}
?>	
<li class="list0<?=$i_len2?>">
<a href="<?php echo $row_len2['ca_link']?>"><?php echo $row_len2['ca_name']?></a>
<ul>
<?php // 소분류 시작
$sql_len4 = " select * {$sql_common_len} {$sql_search_len} and LENGTH(ca_id) = '4' and SUBSTRING(ca_id,1,2) = '{$row_len2[ca_id]}' {$sql_order_len} ";
$result_len4 = sql_query($sql_len4);
for ($i_len4=0; $row_len4=_array($result_len4); $i_len4++) {
if($row_len4['ca_link_target'] == 'blank'){$list_link = " target='_blank' ";}
?>
<li><a href="<?php echo $row_len4['ca_link']?>"  <?php echo $list_link ?> class=""><?php echo $row_len4['ca_name']?></a> </li>
<?php }//sub menu for End?>
</ul>
</li>
<?php }//main menu for End?>

 

위의 코드는 탑 네비게이션(top_menu)에 해당하는 부분입니다.

 

sh_category의 대분류 메뉴를 가져오는 쿼리를 보시면 아래와 같습니다.

​​
$sql_len2 = " select * {$sql_common_len} {$sql_search_len} and length(ca_id) = '2' {$sql_order_len} ";​

풀어보면

​​
$sql_len2 = " select * from sh_category​ where ca_no > '4'​ and length(ca_id) = '2'   order by ca_id asc ​ ";​

요렇게 되는데요

 

제나름대로 해석해보면;;;

 

$sql_len2 = " select * from sh_category​ where ca_no > '4'​ and length(ca_id) = '2'   order by ca_id asc ​ ";

       sh_category 테이블안에있는 ca_no칼럼이 4보다 크고 ca_id가 2자리 수인것을 $sql_len2에 순서대로 저장한다

 

라고 해석이 됩니다.... 여기서 order by ca_id asc 는 어떻게 해석이 되는건지 궁금하고 $sql_len2에는 어떤값이 들어가는 건지....모르겟어요...

 

 

두번째질문은... 

 

앞의 top_menu의 코드를 보시면 for문으로 이루어져있습니다.

 

​
$result_len2 = sql_query($sql_len2); 

 

이내용은 

 

$sql_len2을 sql_query 함수로 디비에 저장한다? 이렇게해석하면되나요? 저함수(sql_query 이거;;;)의 기능을 모르겟습니다....

 

세번째 질문은 

 

지금 보여지는 for문에 대해서 ...

​​
for ($i_len2=1; $row_len2=sql_fetch_array($result_len2); $i_len2++) 

이것을 해석해보면 $i_len2=1 이고  1씩 증가하는데 $row_len2가 sql_fetch_array($result_len2)와 같을때 까지 라고 해석이 되는데...

1씩 증가하는것까지는 이해가갑니다​ 그런데 "$row_len2가 sql_fetch_array($result_len2)와 같을때 까지​" 이부분이 어떤것을 말하는것인지 이해가가질 않네요....

 

질문은 일단 여기까지 할께요... 

 

사실 php를 공부하고있고있지만 어디서부터 뭘해야할지 전혀 알지못하고있습니다...

회사 개발팀에서 업무를 보고있는데 책으로 공부를 해봐도 책내용과 지금 일하고있는 업무와 대칭이 안되더라구요...

 

하아..... 정말 php 잘하고싶은데,,,,, 답답하기만 하네요,,,,,,

 

 

고수님들 한수 부탁드립니다...

 

 

 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 1

1. 순서대로 저장이 아니라 아직 쿼리를 실행하기 전입니다.

흔히 사용하는 쿼리(select, update, delete, insert)는 무조건 mysql_query라는 함수를 거치게 되어 있습니다(php 기준).

위의 경우는 그냥 $sql_len2라는 변수에 쿼리문만 담겨져 있을 뿐입니다.

쿼리 결과는 말씀하신 것처럼 그렇게 나오겠구요.

그래서 그 밑에 보시면 $result__len2라는 변수에 sql_query($sql_len2)라고 하는 함수로 실행을 해서 그 값을 담는 겁니다.

일단 sql_query라는 사용자 함수를 common.lib.php 파일에서 검색해 보시면 아시겠지만 저기엔 위에서 언급한 msyql_query라는 게 나올 겁니다.

 

2. 기본적인 for문입니다.

for($i_len2=1; $i_len2=sql_fetch_array($result_len2); $i_len2++)

$i_len2 이건 그냥 $i처럼 그냥 카운트 개념입니다.

sql_fetch_array는 위에 나온 $result_len2를 다시 레코드 개념으로 돌려줍니다.

쉽게 말해 $i_len이 돌면서 sql_fetch_array($result_len2) 여기에서 나오는 레코드가 마지막이 될 때까지 도는 겁니다.

 

대충 하긴 했는데요,

어떤 사이트든 함수가 보이면 검색을 해 보세요.

php.net에 가 보시면 함수 검색하는 게 있습니다.

여기에 안 걸리면 사용자 함수라 생각하시면 되고, 이 함수는 무조건 라이브러리 디렉토리(흔히 lib, library)에 대부분이 존재합니다.

없을 경우엔 error를 내뿜을 테니까요.

이런 식의 절차 지향 방식의 코딩은 현재 선언되어 있는 변수보다 상위로 올라가면 올라갈수록 내가 원하는 값들은 분명 존재할 테니 현재 라인에서 exit로 찍고 echo로 변수를 출력해 보면서 하면 충분히 가능합니다.

 

분명한 건 책에서 본 것과는 확실히 다르지만 책에 다 나오는 내용입니다. 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,684 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT