sql 질문입니다.. ㅠ 채택완료

    if($ca_id2){

        $ca_id_arr[$result2] = $ca_id2.explode(",",$idx);

        for($i = 0; $i <= $ca_id_arr.length(); $i++){

            //최초 1회는 ( 열고

            if ($i == 0) {

                "and (ca_id2 = " .$ca_id_arr[$i].

            //or 반복 처리

            }else if($i < $ca_id_arr.length();){

                "or ca_id2=" .$ca_id_arr[$i].

            //or 마지막 괄호 닫기

            }else{

                "or ca_id2=" .$ca_id_arr[$i].")"

            }

        }

    }

    +" order by it_time desc";

 

Parse error: syntax error, unexpected '}' in C:\xampp\htdocs\chalsmill\shop\viewList.skin.php on line 50 오류가 뜨는데 뭐가 문제인지 모르겠습니다..ㅠ 알려주실 고수분 찾습니다!

답변 4개

채택된 답변
+20 포인트

Copy
$sql = "select * from .."; //시작 SQL
    if($ca_id2){
        $ca_id_arr[$result2] = $ca_id2.explode(",",$idx);

        for($i = 0; $i <= $ca_id_arr.length(); $i++){
            //최초 1회는 ( 열고
            if ($i == 0) {
                  $sql .= " and (ca_id2 = '" .$ca_id_arr[$i]."'";
            //or 반복 처리
            }else if($i < $ca_id_arr.length();){
                  $sql .= " or ca_id2='" .$ca_id_arr[$i]."'";
            //or 마지막 괄호 닫기
            }else{
                  $sql .= " or ca_id2='" .$ca_id_arr[$i]."')";
            }
        }
    }
    $sql .= " order by it_time desc";

이런식으로 sql 쿼리를 완성하셔야 합니다.

로그인 후 평가할 수 있습니다

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

php문법이 뭔가 이상하지 않으신가요? 

자바스크립처럼 php문법을 사용한거 같아서 안내드리겠습니다.

 

explode 문법은 구분자를 넣어서 배열로 나누는 기능을 합니다.

아래 예제를 참고 하셔서 적용해보시길 바랍니다.

Copy
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

 

그리고 길이를 체크하는 length도 역시 자바스크립입니다.

이런경우 length 를 넣으시면 안되고 strlen을 사용하셔야 합니다. 아래 예제를 참고 바랍니다.

Copy
<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

 

요렇게 참고 하셔서 사용하시길 바랍니다. 

해보시다 안되시면 쪽지 주시면 도움드리도록 하겠습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

참고로 수정된 소스에선 {} (열고/닫힘) 부분은 문제가 없습니다.
문법적인 부분만 확인해보시면 문제 없이 잘될것 같습니다.

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

{ } 열구 닫구 부분이 정확한지 체크가 필요합니다.

로그인 후 평가할 수 있습니다

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

PHP 닫는 부분하고 문법이 잘못되셨는데 점검 해보시기바랍니다.

Copy
if($ca_id2){

    $ca_id_arr[$result2] = $ca_id2.explode(",",$idx);

    for($i = 0; $i <= $ca_id_arr.length(); $i++){

        //최초 1회는 ( 열고

        if ($i == 0) {

            echo "and (ca_id2 = " .$ca_id_arr[$i];

            //or 반복 처리

            }else if($i < $ca_id_arr.length()){

            echo "or ca_id2=" .$ca_id_arr[$i];

            //or 마지막 괄호 닫기

            }else{

            echo "or ca_id2=" .$ca_id_arr[$i].")";

            }

        }

}
로그인 후 평가할 수 있습니다

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

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

로그인
🐛 버그신고