2010-06-21 135 views
0

我想提交后我可以显示点击.. 但我希望它达到“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>"; 
?> 
+2

对不起,你的问题太模糊...不知道你想达到什么。什么目标?什么件?柜台在哪里? 尝试粘贴到目前为止您所拥有的代码并描述它应该做些什么。 – 2010-06-21 02:29:39

+0

我一直在改变我的问题... – klox 2010-06-21 02:50:31

+0

请使用正确的标点和大写,我们都在学校学到了。大多数语言,不只是英语,都有标点符号的概念,以防万一你不是英语母语的人?但如果我在这里错了,那仍然不是理由。如果编写正确的语法,编译器和运行时将不会如此宽容。 – 2010-06-21 02:59:37

回答

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}} 
+0

看看我的答案..是否正确? – klox 2010-06-22 03:57:43

+0

@klox - 根本不是。 “'{{}}'”不应该被添加 - 这只是为了强调你需要替换的东西。你也不需要两次模数(在你的代码中,你已经把它放在PHP和SQL中)。您还必须保持大小写一致('$ Show_counter'与$ show_counter'不同)。你刚刚复制了我的示例,这是为了显示它的工作原理。除非你想让你的脚本打印出一长串数字,否则你可能不得不自己改变它。我会用更接近你想要的东西来编辑。 – nickf 2010-06-22 04:35:34

+1

......实际上,我不会因为我还不知道你真正想要什么。 – nickf 2010-06-22 04:37:41

0

这里的概念是测试,看看如果你增加变量超过一定可接受的范围为下一个增量的结果。简单地增加变量,然后测试它的值。

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

一定要定义$limit到要在周期的任何数字:

在你的情况,你增加计数器后只需添加一个测试。

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

+0

我必须怎么做,如果我有两个类别.. 极限[1] = 20 极限[2] = 8 – klox 2010-06-21 02:58:19

+0

@ klox,更新我的答案,希望它提供了你需要的澄清。 – 2010-06-21 03:10:01

+0

我的回答如何? – klox 2010-06-21 07:28:26

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>"; 
?> 
相关问题