2012-11-27 4 views
0

게시물 수가 100의 배수가되면 사이트 멤버에게 경고해야합니다. mysql 테이블의 값이 100에 도달하면 함수를 실행하거나 echo 할 수 있습니까? , 200, 300, 등?MYSQL 열 값이 100 씩 증가 할 때 작업 수행

테이블 구조 :

$sql = mysql_query("SELECT `posts` FROM `user` WHERE username='$username'") or die(mysql_error()); 
$row = mysql_fetch_array($sql); 

echo "<br /><h4>Your posts:</h4>" . " " . $row['posts']; 



해결 :

username | password | email | posts 


나는 현재 자신의 게시물 개수를 표시하고있어 나는 모듈을 사용하는 마크의 제안으로 갔다하는 내 요구에 적합하다.

$sql = mysql_query("SELECT `posts` AS posts FROM `user` WHERE username='$username'") or die(mysql_error()); 
$row = mysql_fetch_array($sql); 
$post = $row['posts']; 

    if($post % 100 == 0) { 

     mysql_query("INSERT INTO `posts` (name, message, message_raw) VALUES ('System', '$name has reached $post posts!', '$name has reached $post posts!')"); 

    } 

답변

3

을 cron 작업을 만들 당신은 modulo

MODUL 필요 운영. 이

SELECT username 
FROM `user` 
WHERE username='$username' AND MOD(posts,100) = 0 

처럼

M.

로 나눈 N의 나머지를 반환합니다 그리고 당신은 조건을 사용자가이 논리는 MySQL의에 속하지 않는

+1

일반적으로 모든 삽입에 추가 쿼리를 추가하는 것은 좋지 않습니다. –

+0

트리거보다 좋으며 ID로 사용자를 찾고 인덱스가있는 경우 문제가되지 않아야합니다. – Marc

+0

이 논리는 쿼리에 속하지 않습니다. –

0

당신은 트리거를 사용할 수 있습니다

http://dev.mysql.com/doc/refman/5.5/en/triggers.html

또는

그냥

+0

새 게시물을 할 때마다 확인할 수 있습니다. 그것은 PHP로 이루어져야합니다. 게시물은 사용자 테이블의 일부이므로 모델을 만들거나 표시하려고 할 때 게시물의 양을 확인할 수 있습니다. –

+0

두 이벤트가 거의 동시에 발생하고 199에서 201로 증가하면 응용 프로그램에서 트리거를 놓칠 수 있으므로 특별한 처리가 필요합니다. MySQL 트리거가 작동하도록 보장됩니다. – tadman

+0

고마워, 나는 이것을 시험해 보겠다. –

관련 문제