首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计数器在PHP/MySQL中不会递增

计数器在PHP/MySQL中不会递增
EN

Stack Overflow用户
提问于 2011-10-18 02:23:58
回答 3查看 521关注 0票数 5

我需要为成员部分创建一个计数器(计算用户登录的次数)。

我有以下脚本(counter.php):

代码语言:javascript
复制
<?php
    $conn = mysql_connect("localhost", "myuser", "mypass");
    mysql_select_db("test");

    $sql = "SELECT views FROM members WHERE mid = " . $_GET['mid'];     
    $result = mysql_query($sql); 
    if (!$result)
        {
        mail(ADMIN, 'Cannot Get: ' . mysql_error(), mysql_error());  
        }
    while ($row = mysql_fetch_assoc($result)) 
        {
        $count = $row['views']++; 
        }
    $query = "UPDATE members SET views = '$count' WHERE mid = " . $_GET['mid']; 
    mysql_query($query); 
    mysql_close($conn);

    // show the logo using header() and readfile(); // that part work
?>

数据库:

代码语言:javascript
复制
CREATE TABLE `members` (
  `mid` int(11) NOT NULL AUTO_INCREMENT,
  `views` int(11) DEFAULT '0',
  /* etc...*/
  PRIMARY KEY (`mid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

现在,我在我的.htaccess文件中所做的是:

代码语言:javascript
复制
RewriteEngine On
RewriteRule ^img/logo([0-9]+).jpg$ /counter.php?mid=$1 [L]

但由于某些原因,我的计数器不能正确计数。我遗漏了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-18 02:31:41

您可能只需简化它并执行以下操作:

代码语言:javascript
复制
$query = "UPDATE members SET views = views + 1 WHERE mid = " . $_GET['mid']; 
mysql_query($query); 

if (mysql_affected_rows() == 0) {
   mail(ADMIN, 'Cannot Get: ' . mysql_error(), mysql_error());
}

mysql_close($conn);

不需要进行初始检查。

票数 12
EN

Stack Overflow用户

发布于 2011-10-18 02:28:16

使用这个

代码语言:javascript
复制
$count = $row['views'] + 1;

代码语言:javascript
复制
$count = ++$row['views'];

代码语言:javascript
复制
$query = "UPDATE members SET views = views + 1 WHERE mid = " . $_GET['mid'];

语法:

代码语言:javascript
复制
$x = 1;
$count = $x++;
// $count = 1

$x = 1;
$count = ++$x;
// $count = 2
票数 5
EN

Stack Overflow用户

发布于 2011-10-18 02:28:22

问题出在这条线上

代码语言:javascript
复制
$count = $row['views']++; 

这实际上是在说:

为$count

  • Increment视图分配
  • 的值。

但是你想要:

代码语言:javascript
复制
$count = ++$row['views']; 

上面写着:

views.

  • Assign
  • Increment views.
  • Assign
    • (incremented) value of view to $count

    (将视图值(增量)增加到视图的值

一个细微的区别。:~)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7797880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档