채택완료

sql 해석... 질문 드립니다.

2015-01-02 (금) 17:14:05 3,724

$str = "";
$exists = false;
 
$ca_id_len = strlen($ca_id);
$len2 = $ca_id_len + 2;
$len4 = $ca_id_len + 4;​

if (!$exists) {
    $str = "";

    $tmp_ca_id = substr($ca_id, 0, strlen($ca_id)-2);
    $tmp_ca_id_len = strlen($tmp_ca_id);
    $len2 = $tmp_ca_id_len + 2;
    $len4 = $tmp_ca_id_len + 4;
//echo "^*^".$g4[yc4_category_table]; ->yc4_category
    // 차차기 분류의 건수를 얻음
    $sql = " select count(*) as cnt from $g4[yc4_category_table]
              where ca_id like '$tmp_ca_id%'
                and ca_use = '1'
                and length(ca_id) = $len4 ";
    $row = sql_fetch($sql);
    $cnt = $row['cnt'];
    if (!$cnt)
        $str .= "<tr><td width=1 style='border-left:2px solid #9f877b;' ></td><td>";

    $sql = " select ca_id, ca_name from $g4[yc4_category_table]
              where ca_id like '$tmp_ca_id%'
                and ca_use = '1'
                and length(ca_id) = $len2 order by ca_id ";
    $result = sql_query($sql);
    while ($row=sql_fetch_array($result)) {
        $style = "";
        if ($ca_id == $row[ca_id])
            $style = " class='accent' ";

        if ($cnt) {
            $str .= "<tr><td width=1 bgcolor=#ffffff style='border-right:2px solid #9f877b;'></td>";
            $str .= "<td style='padding:2px;'><table width=100% border=0><tr><td width=120>&nbsp;<b> · <a href='#null' onclick='dy_sel1(\"$row[ca_id]\");'><span $style>$row[ca_name]</span></a></b></td>";
            $sql2 = " select ca_id, ca_name from $g4[yc4_category_table]
                       where ca_id like '$row[ca_id]%'
                         and ca_use = '1'
                         and length(ca_id) = $len4 order by ca_id ";
            $result2 = sql_query($sql2);
            $k=0;
            while ($row2=sql_fetch_array($result2)) {
                if (!$k)
                    $str .= "<td width=20 align=center>|</td><td class=lh>";
                $str .= "<a href='#null' onclick='dy_sel1(\"$row2[ca_id]\");'>$row2[ca_name]</a> &nbsp; ";
                $k++;
            }
            //if (!$k) $str .= "<td></td><td>";
            $str .= "</td></tr></table></td><td width=1 style='border-left:2px solid #9f877b'></td>";
        } else {
            $str .= "<a href='#null' onclick='dy_sel1(\"$row[ca_id]\");'><span $style>$row[ca_name]</span></a> &nbsp; ";
        }
        $exists = true;
    }

    if (!$cnt)
        $str .= "</td><td width=1 style='border-left:2px solid #9f877b'></td></tr>";
}​

솔직히 이 전반적으로 잘 이해가 안됩니다.. 흐름을 잡아주시면 진심으로 감사드립니다 (__)

또한 여기 쓰이는 ca_use는 디비를 열어보면 '1'로 지정이 되어 있는게 그 의미가 무엇이며 tmp_ca_id의 말을 왜 줄여 쓰는지... 또한 그 렝쓰의 의미는 무엇인지 알려주신다면 정말 감사하겠습니다

새해 복 많이 받으시고 늘 건강하십쇼 :)

|

답변 1개

채택된 답변
+20 포인트
2015-01-02 (금) 22:14:51
헐. . 이거코드가 빠진것같네요. 그리고 코드도 좀 정리해서 써야겠네요. exists 변수를 false로했으면 if문에서 if (exitsis==false) 로명확하게해야지? 이건 왜(!exists)라고했는지? ? 암튼 별어려운코드는아니고 그냥카테고리 길이구하는 코드네요.

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