使用php存储数据库中的点击次数

时间:2012-11-13 09:55:19

标签: php mysql click

  

我正在开发一个包含图片库的项目。现在我想将点击次数/计数值存储到我的数据库中(在MySQL中开发)。我试图以自己的方式做到这一点,但问题是所有图像的计数/点击值都以相同的值存储在数据库中。

     

下面给出的代码位于 main.php 文件中,该文件显示从数据库中检索的图像。 picture.php 是从数据库中检索图像的图像。我已附加代码以计算 picture.php 中的点击次数,以便在点击图片时计算。

main.php

    $query="SELECT * FROM files";
    $result=mysql_query($query) or die(mysql_error());
    while($fetch=mysql_fetch_array($result)){
         echo "<div class=single>
               <div class=wrap>
                   <a href=picture.php?fid=".$offer_id.">
                       <img src=picture.php?fid=".$offer_id."\">
                   </a>
               </div>
               </div>";
    }

picture.php

    if(isset($_GET['fid']))
    {
         include "connect.php";
         $fid=$_GET['fid'];
         $query="SELECT * FROM offers_em WHERE o_id =$fid";
         $result=mysql_query($query) or die(mysql_error());

         $sql="UPDATE offers_em SET count+=1 WHERE o_id=".$fid;
         $sql2=mysql_query($sql);

         $name=mysql_result($result,0,"pic_name");
         $size=mysql_result($result,0,"size");
         $type=mysql_result($result,0,"type");
         $content=mysql_result($result,0,"content");

         header("Content-Disposition: attachment; filename=$name");
         header("Content-length: $size");
         header("Content-type: $type");
         echo $content;
    }
    else{
         die("No file ID given...");
    }

2 个答案:

答案 0 :(得分:0)

我不确定MySQL是否支持“+ =”,请尝试 SET count = count + 1

编辑:无论如何,都要考虑对注入漏洞进行排序,如帖子下面的评论所述。

答案 1 :(得分:0)

它与SQL注入无关。

问题是我在循环中调用链接,因此所有点击值都会更新。所以我创建了一个不同的 count_link.php 文件,它只会在调用时调用用户单击图像链接。

$query="SELECT * FROM files";
    $result=mysql_query($query) or die(mysql_error());
    while($fetch=mysql_fetch_array($result)){
         echo "<div class=single>
               <div class=wrap>
                   <a href=count_link.php?fid=".$offer_id.">
                       <img src=picture.php?fid=".$offer_id."\">
                   </a>
               </div>
               </div>";
    }

无论如何,谢谢你们时间的人......:)