如何显示点击计数器然后将其恢复为零?

时间:2010-06-21 02:25:34

标签: php jquery mysql

我希望在我提交表格之后它可以显示点击计数器.. 但我希望它达到“20”后它可以回零.bcoz提交的限制是20次,所以它不能超过极限。

我如何使其有效?我一直在试用这段代码......

<?
$limit="20";
$Query_counter=mysql_query("SELECT model FROM inspec");
$Show_counter=mysql_fetch_array($Query_counter);
$show_counter = $show_counter["model"]+1;

if($show_counter > $limit[0]) {
      $show_counter = 0;
}elseif ($show_counter > $limit[1]) {
      $show_counter = 0;
}


$Query_update=mysql_query("UPDATE inspec SET model=$Show_counter");
$Show_counter=number_format($Show_counter);
$Show_counter=str_replace(",",".",$Show_counter);
echo "Hit:</br><strong>$show_counter</strong>";
?>

3 个答案:

答案 0 :(得分:1)

要使计数器达到某个值然后循环回零,可以使用模数运算符,它在很多语言(包括PHP和MySQL)中都是%

$x = 0;
$limit = 4;
for ($i = 0; $i < 10; ++$i) {
    $x = ++$x % $limit;
    echo $x;
}
// 1, 2, 3, 0, 1, 2, 3, 0, 1, 2

我希望这有足够的意义。我无法从问题中弄清楚你到底想要什么......或许是这样的事情?

UPDATE `mytable` SET `mycounter` = (`mycounter` + 1) % {{the limit}}

答案 1 :(得分:0)

这里的概念是测试你正在递增的变量是否超过了下一个增量的结果。简单地增加变量,然后测试其值。

在您的情况下,只需在递增计数器后添加测试:

$show_counter = $show_counter["model"]+1;
if($show_counter > $limit){
    $show_counter = 0;
}

请务必将$limit定义为您要循环的任何数字。

如果要对多个阈值执行此操作,可以添加其他测试。请注意,您可以将$limit硬编码为您想要的任何数字或任何变量,这只是您要测试的内容。

答案 2 :(得分:0)

<?
$Query_counter=mysql_query("SELECT model FROM inspec");
$Show_counter=mysql_fetch_array($Query_counter);
$show_counter = $show_counter["model"]+1;

$x = 0;
$limit = 20;
for ($i = 0; $i < 30; ++$i) {
    $x = ++$x % $limit;
    echo $x;
}

$Query_update=mysql_query("UPDATE inspec SET model= (model + 1) % 20");
$Show_counter=number_format($Show_counter);
$Show_counter=str_replace(",",".",$Show_counter);
echo "Hit:</br><strong>$show_counter</strong>";
?>