评估数据库中的图像

时间:2014-04-01 19:19:00

标签: php image rating

我正在尝试使用我的图库创建评分系统。我可以使用一个按钮显示所有图像显示在页面上,该按钮表示"就像这个图像"。目的是用户只需要一次图像,一旦他们点击了#34;就像#34;按钮,值1将添加到数据库中的图像。我有一个名为images with imageID,image和rating的数据库表。当有人上传图像时,rating的初始值为零。这是我用来从数据库表中获取图像以显示按钮的代码:

<?php
        mysql_connect("localhost","root","");
        mysql_select_db("pardeepsandhu");


        $res= mysql_query("select * from images");
        $row=mysql_fetch_array($res);
?>
<?php

?>
<div id="w">
  <div id="content">
      <div id="images"><?php while ($row=mysql_fetch_array($res)){?>
        <div id="pic" style="display:inline-block">
        <a href="<?php echo $row["Image"]; ?>"><img src="<?php echo $row["Image"]; ?>" height="135" width="135" border="5" alt="turntable" /></a>
        <form id="form1" name="form1" method="post" action="">
        <input type="submit" name="rate" id="rate" value="Like this image"/>
        </form>
        </div>
<?php } ?>
</div>
  </div>
</div>
<script type="text/javascript">
$(function() {
    $('#images a').lightBox();
});
</script>

我知道我最初需要一个if(isset($ _ POST [&#39; rate&#39;])){},但是我不知道如何制作它。如果用户单击图像下的按钮,则数据库中的rate列将增加1,用户只能对图像执行一次此操作。有人可以帮忙吗? 谢谢!

1 个答案:

答案 0 :(得分:3)

我建议采用略有不同的方法。为了跟踪对哪些图片进行评分,请创建一个包含userIDimageID列的新数据库表。要获得图片的分数,您只需计算imageID是当前图片ID的行数,并检查用户是否已对图片进行了评分,检查是否有行存在使imageID =当前图像和userID =当前用户。

获得图像评分

// $curID is the current image ID
$query = "SELECT * FROM `ratings` WHERE `imageID` = $curID";
// use mysqli->num_rows

检查用户是否已对当前图像进行评级

// $curUser, $curID are current user ID, current image ID
$query = "SELECT * FROM `ratings` WHERE `imageID` = $curID AND `userID` = $curUser;";
// check if mysqli->num_rows > 0

插入评级

$query = "INSERT INTO `ratings` (`userID`, `imageID`) VALUES ($curID, $curUser);";