중복 등록 제외...

중복 등록 제외...

QA

중복 등록 제외...

답변 1

본문

<?

// m3post 함수 ver 1.00 by 말러83 (2009-12-21)

// $newpost[bo_table], $newpost[wr_subject], $newpost[wr_content], $newpost[mb_id] 값만 지정하고,

// m3post($newpost); 라고 실행시키면 글이 해당 게시판에 올라갑니다.

 

function m3post($newpost) {

    global $g4;

 

    // 입력할 bo_table이 진짜 게시판인지 확인

    if(!strlen($newpost[bo_table])) return "error: bo_table 값이 지정되지 않았습니다.";

    if(!$bo = sql_fetch("select * from `$g4[board_table]` where bo_table='$newpost[bo_table]'")) {

        return "error: bo_table이 존재하지 않습니다.";

    }

 

    // 카테고리 사용한다면 카테고리 설정

    $ca_name = $newpost[ca_name];

    if($bo[bo_use_category]) {

        if(!$ca_name || strpos($bo[bo_category_list], $ca_name)===false) { // 카테고리 지정 안됐거나 없는 걸 지정했다면 첫번째로 설정

            $temp = @explode("|", $bo[bo_category_list]);

            $ca_name = $temp[0];

        }

    } else {

        $ca_name = ""; // 카테고리 쓰지 않으면 공백값으로 지정

    }

 

    // 회원정보 및 권한 확인

    $mb = get_member($newpost[mb_id]);

    if(!$mb) return "error: mb_id가 존재하지 않습니다.";

    if($bo[bo_write_level] > $mb[mb_level]) {

        return "error: 글쓰기 권한이 없습니다.";

    }

 

    // 변수 정리

    $bo_table = $newpost[bo_table];

    $write_table = $g4[write_prefix] . $bo_table;

    $wr_num = get_next_num($write_table);

    $ca_name = addslashes($ca_name);

    $html = "html1"; // 이 값은 필요에 맞게 설정

    $secret = "";

    $mail = "";

    $wr_subject = addslashes(trim($newpost[wr_subject]));

    $wr_content = addslashes(trim($newpost[wr_content]));

    if(!$wr_subject) return "error: 글 제목이 없습니다.";

    if(!$wr_content) return "error: 글 내용이 없습니다.";

    $mb_id = $mb[mb_id];

    $wr_password = $mb[mb_password];

    $wr_name = $bo[bo_use_name] ? $mb[mb_name] : $mb[mb_nick];

    for($i=1; $i<=10; $i++) { // 확장필드도 입력

        $wr = "wr_{$i}";

        ${$wr} = addslashes($newpost[$wr]);

    }

    $wr_link1 = $newpost[wr_link1];

    $wr_link2 = $newpost[wr_link2];

    $wr_trackback = $newpost[wr_trackback];

    

    // 글 입력하기

    $sql = " insert into $write_table

                set wr_num = '$wr_num',

                    wr_reply = '',

                    wr_comment = 0,

                    ca_name = '$ca_name',

                    wr_option = '$html,$secret,$mail',

                    wr_subject = '$wr_subject',

                    wr_content = '$wr_content',

                    wr_link1 = '$wr_link1',

                    wr_link2 = '$wr_link2',

                    wr_link1_hit = 0,

                    wr_link2_hit = 0,

                    wr_trackback = '$wr_trackback',

                    wr_hit = 0,

                    wr_good = 0,

                    wr_nogood = 0,

                    mb_id = '$mb_id',

                    wr_password = '$wr_password',

                    wr_name = '$wr_name',

                    wr_email = '$wr_email',

                    wr_homepage = '$wr_homepage',

                    wr_datetime = '$g4[time_ymdhis]',

                    wr_last = '$g4[time_ymdhis]',

                    wr_ip = '$_SERVER[REMOTE_ADDR]',

                    wr_1 = '$wr_1',

                    wr_2 = '$wr_2',

                    wr_3 = '$wr_3',

                    wr_4 = '$wr_4',

                    wr_5 = '$wr_5',

                    wr_6 = '$wr_6',

                    wr_7 = '$wr_7',

                    wr_8 = '$wr_8',

                    wr_9 = '$wr_9',

                    wr_10 = '$wr_10' ";

    sql_query($sql);

    $wr_id = mysql_insert_id();

 

$query  = "select wr_subject from $write_table where wr_subject= '$wr_subject' order by wr_subject "; 

$result  = mysql_query($query); 

$num    = mysql_num_rows($result); 

 

if ($num > 0){ 

alert("중복된 제목"); // 등록된 데이터 있으면 등록불가. 

}else{ 

 

    // 부모 아이디에 UPDATE

    sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");

 

    // 최신글 삽입

    sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]', '$mb[mb_id]' ) ");

 

    // 게시글 1 증가

    sql_query("update $g4[board_table] set bo_count_write = bo_count_write + 1 where bo_table = '$bo_table'");

 

    // 포인트 발생

    insert_point($member[mb_id], $board[bo_write_point], "$bo[bo_subject] $wr_id 글쓰기", $bo_table, $wr_id, '쓰기');

 

    // 성공하면 글번호를 return;

    return $wr_id;

}

}

?>  

 

-----------------------------------------------------------------------------------------------------

 

위 말러님 코드에다가 아래 중복된 제목을 제외 시키는 구문을 추가 했는데 잘 안되네요.

중복된 제목이 있으면 업데이트 안하고 바로 넘어가고 싶은데... 어디가 문제인지 모르겠습니다.

 

$query  = "select wr_subject from $write_table where wr_subject= '$wr_subject' order by wr_subject "; 

$result  = mysql_query($query); 

$num    = mysql_num_rows($result); 

 

if ($num > 0){ 

alert("중복된 제목"); // 등록된 데이터 있으면 등록불가. 

}else{  

이 질문에 댓글 쓰기 :

답변 1

음 저는 중복글 검사 이런식으로 사용합니다. 참고하세요.

<?

$chk = "select count(*) as cnt from g4_write_테이블 where mb_id = '$member[mb_id]' and wr_subject = '$wr_subject' ";

$chk_row = sql_fetch($chk);

if($chk_row[cnt] > 0){

alert("중복된 제목.");

}

 

?> 

 

한 아이디로 같은제목글 등록하는것 막을려고 사용합니다.

 

write_update.head.skin에 사용합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 10,637
© SIRSOFT
현재 페이지 제일 처음으로