테스트 사이트 - 개발 중인 베타 버전입니다

게시물 SQL 삭제시 카운트 처리 채택완료

바트컨트롤 5개월 전 조회 1,233

어쩔수없이
게시물을 PHP상에서 SQL 강제삭제처리를 할 수 밖에없는데요

그러하니 게시물의 카운트가 맞지않는 현상이 발생하였습니다.


리스트 접속시 카운트를 조정하게끔 진행하려하는데

관리자로 들어가서 진행하는
1846272527_1747039050.384.pnghttp://sir.kr/data/editor/2505/1846272527_1747039050.384.png" />

해당부분을 board_form_update.php파일에서

</p>

<p><?php

$sql = " select a.wr_id, (count(b.wr_parent) - 1) as cnt from {$g5['write_prefix']}{$bo_table} a, {$g5['write_prefix']}{$bo_table} b where a.wr_id=b.wr_parent and a.wr_is_comment=0 group by a.wr_id ";

$result = sql_query($sql);

for ($i=0; $row=sql_fetch_array($result); $i++) {

    sql_query(" update {$g5['write_prefix']}{$bo_table} set wr_comment = '{$row['cnt']}' where wr_id = '{$row['wr_id']}' ");

}

?></p>

<p>

을 가져와 list.skin.php 상단부에 넣었는데 작동이 되질 않습니다..

조언이나 관련 링크가 있으면 부탁드립니다

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

답변 1개

채택된 답변
+20 포인트
5개월 전

1. php 상에서 강제 삭제 하는 쿼리 아래에 ..업데이트  (위에 작성한 쿼리) 를 합니다.

 

2. php 로 sql 강제 삭제 > 해당 카운트가 동작하게끔 하는 방법이죠

 

3. sql 강제 삭제하는 코드가 없어 정확하게는 모르겠지만. common.php 파일을 인쿠르트 하지 않았다면

 

4. {$g5['write_prefix']}{$bo_table}  이부분을 수작업으로 작성해야 합니다.

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

답변에 대한 댓글 3개

바트컨트롤
5개월 전
아하
common.php는 인클루드되어있고
현재 강제삭제는
[code]
$counsel_span_delete = "
DELETE FROM g5_write_inquiry01
WHERE (ca_name = '' OR ca_name IS NULL)
AND mb_id <> 'admin'
AND DATE(wr_datetime) BETWEEN CURDATE() - INTERVAL 1 DAY AND CURDATE()
";

sql_query($counsel_span_delete);
[/code]
로 이뤄져 있습니다!


아래에 {$g5['write_prefix']}{$bo_table} 를 g5_write_inquiry01로 바꿔도 실행이안되는것같습니다..
[code]
<?php
$sql = " select a.wr_id, (count(b.wr_parent) - 1) as cnt from {$g5['write_prefix']}{$bo_table} a, {$g5['write_prefix']}{$bo_table} b where a.wr_id=b.wr_parent and a.wr_is_comment=0 group by a.wr_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
sql_query(" update {$g5['write_prefix']}{$bo_table} set wr_comment = '{$row['cnt']}' where wr_id = '{$row['wr_id']}' ");
}
?>
[/code]
미니님a
5개월 전
변수를

g5_write_inquiry01

이걸로 다 변경해서 실행해보세요..

아울러, 설정된 쿼리를 잠시 화면에 출력 시켜보세요

echo $sql;
exit;

하면 화면에 쿼리 나올꺼에요 그거 실제 phpmyadmin 같은 곳에서 정확하게 나오는지 확인

그리고 update 문도 화면에 출력해서 실행해보세요
바트컨트롤
5개월 전
감사합니다!

{$g5['write_prefix']}{$bo_table} -> g5_write_inquiry01 변경 후


SELECT 쿼리(echo $sql;):
SELECT a.wr_id, (COUNT(b.wr_parent) - 1) AS cnt FROM g5_write_inquiry01 a, g5_write_inquiry01 b WHERE a.wr_id = b.wr_parent AND a.wr_is_comment = 0 GROUP BY a.wr_id

UPDATE 쿼리: UPDATE g5_write_inquiry01 SET wr_comment = '0' WHERE wr_id = '3'
UPDATE 쿼리: UPDATE g5_write_inquiry01 SET wr_comment = '0' WHERE wr_id = '4'
UPDATE 쿼리: UPDATE g5_write_inquiry01 SET wr_comment = '0' WHERE wr_id = '6'
UPDATE 쿼리: UPDATE g5_write_inquiry01 SET wr_comment = '0' WHERE wr_id = '7'
UPDATE 쿼리: UPDATE g5_write_inquiry01 SET wr_comment = '0' WHERE wr_id = '2544'
UPDATE 쿼리: UPDATE g5_write_inquiry01 SET wr_comment = '0' WHERE wr_id = '2545'
UPDATE 쿼리: UPDATE g5_write_inquiry01 SET wr_comment = '0' WHERE wr_id = '2546'
UPDATE 쿼리: UPDATE g5_write_inquiry01 SET wr_comment = '0' WHERE wr_id = '2547'
UPDATE 쿼리: UPDATE g5_write_inquiry01 SET wr_comment = '0' WHERE wr_id = '2548'
UPDATE 쿼리: UPDATE g5_write_inquiry01 SET wr_comment = '0' WHERE wr_id = '2549'

나오네요.
토대로 한번 공부해서 다시 적용해보겠습니다.

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

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

로그인