从mysql表中获取值并添加1

时间:2014-01-10 02:19:11

标签: php mysql

这是我第一次在stackoverflow中发帖,所以请告诉我是否需要添加更多信息!

我试图从mysql数据库中获取一个值,并在页面加载时向其中添加1。用户点击第一页上的链接,当加载链接页面并运行下面的php代码时,它会在表格“lot”中名称值为TheButton的条目中将Clickcount列添加1。

当我使用WAMP通过Dreamweaver运行以下代码时起作用:

<?php
$con=mysqli_connect("localhost","root","qwerty71","Lots");
mysqli_query($con,"UPDATE Lots SET Clickcount=Clickcount+1
WHERE Name='TheButton'");
$result=mysqli_query($con,"SELECT * FROM Lots where Name='TheButton'");
while($row= mysqli_fetch_array($result))
{
echo $row['Clickcount'];
}
mysqli_close($con);
?>

但是当我将相同的代码放入我的网站时(仅在mysqli_connect之后更改值以连接到数据库)它不起作用。底部的回显是显示更改后的值,我在第一页上有相同的回显,以显示第二页编辑之前的值。在加载第一页或单击链接之前,我在数据库中将值设置为零。第一页显示零值,单击链接后第二页更改值并显示1.当我尝试单击返回第一页时,它显示1而不是零,但后两页继续每次点击链接时显示1s而不是添加1。

在Click Clickcount =之后,我尝试了多种更改代码的方法 包括尝试在查询之前添加一个变量,我将其设置为等于Clickcount值并尝试向其添加1。

我的代码中是否存在阻止其正常工作的错误,或者是否有其他方法可以将其设置为获得所需的结果?


为清晰起见重新解释:

我的表格如下:

名称Clickcount TheButton 0

我每次加载页面时都试图将“clickcount”下的值增加1。我的代码(上面发布的)在本地服务器上运行时运行正常,我更改了参数以匹配我的服务器在线。

主页上面有一部分代码,用于显示Clickcount列的值以及指向上面代码所在的第二页的链接。

代码运行一次,将值从零更改为1,但随后在连续尝试时停止工作。

我的代码中是否有错误?或者有更好的方法来完成增加价值的任务吗?


进一步更新: 代码似乎每5-10分钟工作一次。我把它留在了上面,它之前没有这样做过。我不知道发生了什么变化。

此外,每隔几次它就能工作,我会在两个单独的页面上调用代码的以下部分时得到两个不同值的结果:

$result=mysqli_query($con,"SELECT * FROM Lots where Name='TheButton'");
while($row= mysqli_fetch_array($result))
{
echo $row['Clickcount'];
}
mysqli_close($con);

此代码位于主页上,有时会导致比mysql表中记录的值小一号。在上面列出完整代码的页面上,它总是显示与表中相同的值。


在我不断努力解决这个问题的过程中,我已经删除了托管我网站的服务器上的所有文件,并从头开始重新启动。重新编写两个页面的所有代码,在新数据库中创建新表,并在第二页上实现上面的代码后,错误仍然存​​在。

我刚刚注册了一个新的托管服务,看看它是否是造成问题的服务器。可悲的是,那不是它。有没有人建议解决方案?

2 个答案:

答案 0 :(得分:0)

看看这一点:

  • 复制您的查询并放入数据库。它有效吗?
  • 在更新行的末尾,添加or die(mysqli_error($con))。如果显示错误,请查看错误;
  • 远程表中的名称列中有'TheButton'值吗?
  • 尝试更新更新查询中的子句Name='TheButton'Name LIKE 'TheButton'

始终在代码中抛出错误消息。是找错误的最好方法。 ;)

答案 1 :(得分:0)

该页面正在加载缓存版本,而不是从网站本身加载。我在标题中添加了一些编码来删除缓存,这解决了问题。