我正在尝试使用我的图库创建评分系统。我可以使用一个按钮显示所有图像显示在页面上,该按钮表示"就像这个图像"。目的是用户只需要一次图像,一旦他们点击了#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,用户只能对图像执行一次此操作。有人可以帮忙吗? 谢谢!
答案 0 :(得分:3)
我建议采用略有不同的方法。为了跟踪对哪些图片进行评分,请创建一个包含userID
和imageID
列的新数据库表。要获得图片的分数,您只需计算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);";