2010-06-21 2 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

Извините, ваш вопрос слишком расплывчатый ... Не уверен, чего вы пытаетесь достичь. Какая цель? Какие штуки? Где счетчик? Попытайтесь вставить код, который у вас есть до сих пор, и объясните, что он должен делать. –

+0

Я изменил свой вопрос ... – klox

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

посмотри на мой ответ .. это правильно? – klox

+0

@klox - совсем нет. «' {{}} '" не должен быть добавлен - нужно просто выделить то, что вам нужно заменить. Вам также не нужно выполнять модуль дважды (в коде, который вы поместили в PHP, а также в SQL). Вы также должны придерживаться своей капитализации ('$ Show_counter' отличается от' $ show_counter'). Вы только что скопировали мой пример, который призван показать, как он работает. Если вы не хотите, чтобы ваш скрипт просто распечатывал длинную строку чисел, вам, возможно, придется изменить его самостоятельно. Я отредактирую с чем-то более близким к тому, что вам может понадобиться. – nickf

+1

... на самом деле, я не буду, потому что я до сих пор не знаю, что вы на самом деле хотите. – nickf

0

Концепция здесь, чтобы проверить, чтобы увидеть, если переменная вы приращением превышает некоторый допустимый диапазон, как результат следующего приращения. Простой приращение переменной, затем проверьте ее значение.

В вашем случае, просто добавьте тест после приращения счетчика:

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

Будьте уверены, чтобы определить $limit на любой номер, который вы хотите, чтобы цикл на.

Если вы хотите сделать это для нескольких пороговых значений, вы можете добавить дополнительные тесты. Обратите внимание, что вы можете жестко закодировать $limit на любое количество или любую переменную, которую вы хотите, это просто то, против чего вы тестируете.

+0

как я должен делать, если у меня есть две категории. limit [1] = 20 limit [2] = 8 – klox

+0

@klox, обновил мой ответ, надеюсь, он предоставит вам необходимые разъяснения. –

+0

как насчет моего ответа? – klox

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>"; 
?> 
Смежные вопросы