2012-01-29 79 views
0

我做了一个非常简单的查看计数器。最终,我将转换为cronjob视图计数器/更新程序,但现在我只需在每次刷新页面时使用mysql更新查询。我想知道是否有办法将这两个声明合并为一个,试图减少处理。有什么办法可以结合这两个查询语句吗?

PHP:

$query=mysql_query("SELECT * FROM questions WHERE id='$q'"); //string is escaped (not shown) 
while ($row=mysql_fetch_assoc($query)){ 
    $views=$row['views']+1; 
} 
mysql_query("UPDATE questions SET views='$views' WHERE id='$q'"); 

而且,这将是非常有益的,如果你发现任何你能指出潜在的安全问题。感谢

回答

4

为什么不干脆:

mysql_query("UPDATE questions SET views=views+1 WHERE id='$q'"); 

这将通过1

+0

什么是“意见+ 1”中的“意见”。这个价值从何而来?我不需要查询来获取这个值 – kirby 2012-01-29 04:09:22

+0

这是在数据库中执行的,所以说“views”的值应该成为之前的“views”值的总和,而“1. views”是之前的值在数据库中。 – 2012-01-29 04:12:13

+0

这只是列值。将它与php中的变量(或任何其他语言)进行比较 – giorgio 2012-01-29 04:12:30

1

我想你想用一个值1更新视图每次和增量增加您的看法。你可以直接做到这一点,而不需要选择像:

mysql_query("UPDATE questions SET views=views+1 WHERE id='$q'"); 

这将增加你的看法。

希望这会有所帮助:)

+0

我猜你键入更快:) – 2012-01-29 04:08:48

+0

@sabari请参阅我上面的评论 – kirby 2012-01-29 04:10:35

+0

@布鲁诺席尔瓦:) – Sabari 2012-01-29 04:16:40

相关问题