我需要为成员部分创建一个计数器(计算用户登录的次数)。
我有以下脚本(counter.php):
<?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
?>数据库:
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文件中所做的是:
RewriteEngine On
RewriteRule ^img/logo([0-9]+).jpg$ /counter.php?mid=$1 [L]但由于某些原因,我的计数器不能正确计数。我遗漏了什么?
发布于 2011-10-18 02:31:41
您可能只需简化它并执行以下操作:
$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);不需要进行初始检查。
发布于 2011-10-18 02:28:16
使用这个
$count = $row['views'] + 1;或
$count = ++$row['views'];或
$query = "UPDATE members SET views = views + 1 WHERE mid = " . $_GET['mid'];语法:
$x = 1;
$count = $x++;
// $count = 1
$x = 1;
$count = ++$x;
// $count = 2发布于 2011-10-18 02:28:22
问题出在这条线上
$count = $row['views']++; 这实际上是在说:
为$count
但是你想要:
$count = ++$row['views']; 上面写着:
views.
(将视图值(增量)增加到视图的值
一个细微的区别。:~)
https://stackoverflow.com/questions/7797880
复制相似问题