이전 목록 다음
채택완료

다중 게시글입력 쿼리질문

2014-02-22 (토) 13:01:22 14,352
a게시판에 자동으로 글을등록중입니다
b게시판에 같은제목의 게시글에 wr_last를 a에등록될때 b에 업데이트해주기위해 아래쿼리를 작성햇는데
현제는 a게시판에 글이등록이되면 b게시판의 a게시판제목과 같은제목의글에 wr_last가등록안되고
b게시판 전체wr_last가업데이트됨니다. 

같은제목의 글에만 wr_last가업데이트되게하려면 어디를수정해줘야되는지여
고수님들 한수부탁드립니다.


48번열부터 세로작성한쿼리입니다.

Copy
// 변수 정리
	$bo_table = $newpost[bo_table];
	$write_table = $g5[write_prefix] . $bo_table;
	$wr_num = get_next_num($write_table);
	$ca_name = addslashes($ca_name);
	$html = "html1"; // 이 값은 필요에 맞게 설정
	$wr_subject = addslashes(trim($newpost[wr_subject]));
	$wr_content = addslashes(trim($newpost[wr_content]));
	$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];

	// 글 입력하기
    $sql = " insert into $write_table
                set wr_num = '$wr_num',
                    wr_comment = 0,
                    ca_name = '$ca_name',
                    wr_subject = '$wr_subject',
                    wr_content = '$wr_content',
                    wr_link1 = '$wr_link1',
                    wr_link2 = '$wr_link2',
                    mb_id = '$mb_id',
                    wr_datetime = '".G5_TIME_YMDHIS."' ,
                    wr_last = '".G5_TIME_YMDHIS."' ";
    sql_query($sql);
    $wr_id = mysql_insert_id();

    // 부모 아이디에 UPDATE
    sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");

	// 최신글 삽입
    sql_query(" insert into $g5[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$bo_table', '$wr_id', '$wr_id', '".G5_TIME_YMDHIS."' , '$mb[mb_id]' ) ");

    // 게시글 1 증가
    sql_query("update $g5[board_table] set bo_count_write = bo_count_write + 1 where bo_table = '$bo_table'");

	// *   여기가 세로작성한 쿼리문입니다 *//

// 복사할 타겟 bo_table 가져오기
$temp1 = sql_fetch("select bo_3 from `$g5[board_table]` where bo_table='$bo_table'");
$tar_bo_table = $temp1[bo_3];

// 글 입력부
	$write_table = $g5['write_prefix'] . $tar_bo_table;
	$wr_num = get_next_num($write_table);
	if(!strlen($mb_id)) $mb_id = $write[mb_id];
	$mb = get_member($mb_id);
	for($i=1; $i<=10; $i++) {
		$var = "wr_".$i;
		${$var} = addslashes($write[$var]);
	}
	$sql = " update  $write_table 
                set    wr_last = '".G5_TIME_YMDHIS."' ";
	sql_query($sql);


    // 부모 아이디에 UPDATE
    sql_query(" update $write_table set wr_parent = '$new_wr_last' where wr_last = '$new_wr_last' ");

    // 새글 INSERT
	// 최신글 삽입
	// 성공하면 글번호를 return;
    return $wr_id;
}
?>

답변 6개 / 댓글 3개

채택된 답변
+20 포인트
// 복사할 타겟 bo_table 가져오기
$temp1 = sql_fetch("select bo_3 from `$g5[board_table]` where bo_table='$bo_table'");
$tar_bo_table = $temp1[bo_3];
위코드에 bo_3 에 값이 뭐가 들어가 있죠?
게시판설정에서 예비필드 3같은데.....
혹 bo_3 에 movie 란 단어가 들어가 잇다면

// 글 입력부
$write_table1 = $g5['write_prefix'] . $tar_bo_table;
$wr_num = get_next_num($write_table);
if(!strlen($mb_id)) $mb_id = $write[mb_id];
$mb = get_member($mb_id);
for($i=1; $i<=10; $i++) {
$var = "wr_".$i;
${$var} = addslashes($write[$var]);
}
$sql = " update $write_table1 set wr_last = '".G5_TIME_YMDHIS."' where wr_subject = '$wr_subject' ";
sql_query($sql);
 
이렇게 해도......근데 빨간부분이 뭔지는 모르겠네요......
sahara님, 사이트 완성이 된건가요?
해당글에 답변 채크를 주셨으니 그 소스로 살을 더 붙이자면
 
// 복사할 타겟 bo_table 가져오기
$temp1 = sql_fetch("select bo_3 from `$g5[board_table]` where bo_table='$bo_table'");
$tar_bo_table = $temp1[bo_3];
$write_table1 = $g5['write_prefix'] . $tar_bo_table;
$che = sql_fetch(SELECT count(wr_subject) AS cnt FROM $write_table1 WHERE wr_sunject ='$wr_subject');
 
if ($temp1[bo_3] && $che[cnt]>0){
// 글 입력부 
$sql = " update $write_table1 set wr_last = '".G5_TIME_YMDHIS."' where wr_subject = '$wr_subject' ";
sql_query($sql);
}
 
이렇게 해주면 bo_3 에 값이 있고 movie에 동일한 제목이 잇을때만 실행시킬수가 잇을듯 합니다.
무지고생햇는데 한번에해결해주셔서 감사합니다.
동작되는거같에여,..

답변에 대한 댓글 2개

근데요........data에 새글을 쓸때 movie에 동일한 제목이 없으면 어떻게하나요?
동일한 제목이 잇는지도 체크를 해줘야할거 같은데요.
data게시판은 같은제목이 많이있습니다. movie게시판은 1개만존재하구여
신비나라님의 동영상게시판을 g5로사용중입니다.
동영상주소를 다른테이블에서 읽어와서 보여주는 방식인데 .


서로다른게시판이두개있습니다
data테이블에 게시물이올라오면 movie테이블에서 data테이블에서 같은제목 게시글과 wr_last동일하게  수정해주고싶어서요 

movie테이블에서 최신글정렬을위해서 해주려구합니다. 


111.png
 

답변에 대한 댓글 1개

// * 여기가 세로작성한 쿼리문입니다 *//


// 복사할 타겟 bo_table 가져오기
$temp1 = sql_fetch("select bo_3 from `$g5[board_table]` where bo_table='$bo_table'");
$tar_bo_table = $temp1[bo_3];


// 글 입력부
$write_table = $g5['write_prefix'] . $tar_bo_table;
$wr_num = get_next_num($write_table);
if(!strlen($mb_id)) $mb_id = $write[mb_id];
$mb = get_member($mb_id);
for($i=1; $i<=10; $i++) {
$var = "wr_".$i;
${$var} = addslashes($write[$var]);
}
$sql = " update $write_table
set wr_last = '".G5_TIME_YMDHIS."' ";
sql_query($sql);




// 부모 아이디에 UPDATE
sql_query(" update $write_table set wr_parent = '$new_wr_last' where wr_last = '$new_wr_last' ");

새로넣으신 해당 코드가 어떤 기능인지는 모르겠으나
질문하신분의 의도데로 data 테이블에 글을 등록시?
movie 테이블에 같은 제목의 게시물의 wr_last 의 날짜를 data에 새로 등록한 게시물의 등록 날짜로 하고 싶다는 말씀인가요?
$new_wr_last 에는 값이 없는거 같은데;;;;

if ($bo_table == "data") {
$movie_table = $g5['write_prefix']."movie";
sql_query(" update $movie_table set wr_last= '".G5_TIME_YMDHIS."' where wr_subject = '$wr_subject' ");
}

이렇게인거 같은데요......
즉 위에서 data테이블에서 새글을 등록하였다면 movie 테이블에 동일한 제목의 게시글의 wr_last를 현재날짜로 업데이트

맞나모르겠네요.
수양이 부족한가 질문에 이해가안가네요 ;;;;;;;

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