0

我正在尝试创建一个类似于 Facebook LIKE 按钮的系统。我想让用户喜欢一张图片,但只让他们喜欢一次。喜欢了之后,应该只能不喜欢了。

我目前的代码是:

<?php
$id = $_GET["picID"];

    include 'db.php';

    $colID  = str_replace('_', ' ', $_GET['picID']);
    $colID  = mysql_escape_string($picID);

    $sql = "SELECT * FROM picture WHERE id = $id";
    $result = mysql_query($sql) or die (mysql_error()."<br/>".sql); 
    $row = mysql_fetch_array($result);


    $update = "UPDATE picture SET likes=likes+1 WHERE id='$id'";
    mysql_query($update) or die (mysql_error()."<br/>".update);     
    echo "Thank you";

?>

目前我使用超链接来触发“喜欢”动作:

<a href='like.php?colID=$row[id]'>Like</a>

最后,我想将其更改为 AJAX,以便用户可以简单地单击 Like(就像在 Facebook 上一样)而无需更改任何页面。我仍在阅读如何做到这一点。这个任务有特定的名称吗?或者有人可以告诉我我可以做到这一点吗?

编辑:

用户需要登录才能喜欢图片。我有两个未链接的表,User并且Pictures. 目前,用户可以一直点击“Like”,它会将 1 添加到 like 列。

4

2 回答 2

0

一种方法是创建一个包含图片 ID 和用户 ID 列的表,以显示一个人喜欢某张特定图片。如果用户 ID 与图片 ID 一起列在表格中,那么您不应该让他们喜欢该图片,因为他们已经喜欢它。您可以通过对数据库的查询来执行此检查,该数据库将返回 1 或 0 的计数。

于 2013-10-10T22:28:41.330 回答
0

在您的数据库中创建一个字符串列以指示谁喜欢该图片。

如果用户已登录(因此可以投票),则通过分解并循环搜索字符串中的姓名。然后从字符串中删除他的名字或添加它。 请注意,您还可以使用序列化将数组直接保存到数据库中:http: //php.net/manual/en/function.serialize.php

为了快速加载,您可以拥有另一列,其中包含第一列的名称计数。

于 2013-10-10T22:40:50.997 回答