'테터팁'에 해당되는 글 1건
2006/06/16 17:38
http://www.justinchronicles.net/blog/index.php?pl=132
http://tolkien.withseha.net/index.php?pl=140
위의 링크에 있던 내용 수정.
mysql 버전이 3.x 라 서브쿼리가 안 되서 스크립트로 만들었음.
스팸 정말 싫다.
즤질이야~ 즤질~
<?php
/**
* 사용 방법
* SPAM reply(table t3_###_10ofmg_reply)에서 데이터를 제거한 후
* 환경 설정을 해주고 스크립트 실행.
*
* tip) 대부분의 스팸 데이터들은 동일한 password를 사용하는 것 같으므로
* DELETE FROM t3_###_10ofmg_reply WHERE password = '29bad1457ee5e49e'
* 위의 쿼리를 실행 시켜준다. (아니면 말고.)
*
* 콘솔에서 실행시킬 경우 : php -q count_reset.php
*/
/**
* 환경 설정
*/
$db_host = 'localhost';
$db_user = '';
$db_pass = '';
$db_name = '';
$tt_tbl = 't3_tts_10ofmg';
$tt_tbl_rep = 't3_tts_10ofmg_reply';
$tmp_tbl = 't3_tts_10ofmg_tmp_cnt';
$conn = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_name, $conn);
/**
* 1. 임시 reply count용 table 생성
*/
$sql = "DROP TABLE IF EXISTS ".$tmp_tbl;
mysql_query($sql);
$sql = "CREATE TABLE ".$tmp_tbl."
(
pno INT NOT NULL,
count INT NOT NULL
) TYPE = MYISAM
";
mysql_query($sql);
/**
* 2. 임시테이블에 다시 새롭게 포스트별로 댓글수를 카운트해서 집어넣기
*/
$sql = "INSERT INTO
".$tmp_tbl."
SELECT a.no AS no,
COUNT(b.pno) AS count
FROM ".$tt_tbl." AS a
LEFT JOIN
".$tt_tbl_rep." AS b
ON a.no = b.pno
GROUP BY a.no
ORDER BY a.no ASC";
mysql_query($sql);
/**
* 4. 본테이블에 새롭게 카운트된 코멘트 숫자를 업데이트.
*/
$sql = "SELECT
pno as pno,
count as cnt
FROM
".$tmp_tbl."
";
$rs = mysql_query($sql);
while($row = mysql_fetch_assoc($rs))
{
$sql = "UPDATE ".$tt_tbl." SET
rp_cnt = ".$row['cnt']."
WHERE no = ".$row['pno']."
";
mysql_query($sql);
}
/**
* 5. 임시 테이블 제거
*/
$sql = "DROP TABLE IF EXISTS ".$tmp_tbl;
mysql_query($sql);
?>
http://tolkien.withseha.net/index.php?pl=140
위의 링크에 있던 내용 수정.
mysql 버전이 3.x 라 서브쿼리가 안 되서 스크립트로 만들었음.
스팸 정말 싫다.
즤질이야~ 즤질~
<?php
/**
* 사용 방법
* SPAM reply(table t3_###_10ofmg_reply)에서 데이터를 제거한 후
* 환경 설정을 해주고 스크립트 실행.
*
* tip) 대부분의 스팸 데이터들은 동일한 password를 사용하는 것 같으므로
* DELETE FROM t3_###_10ofmg_reply WHERE password = '29bad1457ee5e49e'
* 위의 쿼리를 실행 시켜준다. (아니면 말고.)
*
* 콘솔에서 실행시킬 경우 : php -q count_reset.php
*/
/**
* 환경 설정
*/
$db_host = 'localhost';
$db_user = '';
$db_pass = '';
$db_name = '';
$tt_tbl = 't3_tts_10ofmg';
$tt_tbl_rep = 't3_tts_10ofmg_reply';
$tmp_tbl = 't3_tts_10ofmg_tmp_cnt';
$conn = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_name, $conn);
/**
* 1. 임시 reply count용 table 생성
*/
$sql = "DROP TABLE IF EXISTS ".$tmp_tbl;
mysql_query($sql);
$sql = "CREATE TABLE ".$tmp_tbl."
(
pno INT NOT NULL,
count INT NOT NULL
) TYPE = MYISAM
";
mysql_query($sql);
/**
* 2. 임시테이블에 다시 새롭게 포스트별로 댓글수를 카운트해서 집어넣기
*/
$sql = "INSERT INTO
".$tmp_tbl."
SELECT a.no AS no,
COUNT(b.pno) AS count
FROM ".$tt_tbl." AS a
LEFT JOIN
".$tt_tbl_rep." AS b
ON a.no = b.pno
GROUP BY a.no
ORDER BY a.no ASC";
mysql_query($sql);
/**
* 4. 본테이블에 새롭게 카운트된 코멘트 숫자를 업데이트.
*/
$sql = "SELECT
pno as pno,
count as cnt
FROM
".$tmp_tbl."
";
$rs = mysql_query($sql);
while($row = mysql_fetch_assoc($rs))
{
$sql = "UPDATE ".$tt_tbl." SET
rp_cnt = ".$row['cnt']."
WHERE no = ".$row['pno']."
";
mysql_query($sql);
}
/**
* 5. 임시 테이블 제거
*/
$sql = "DROP TABLE IF EXISTS ".$tmp_tbl;
mysql_query($sql);
?>
Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다




count_reset.php