如何创建Facebook风格的“点赞”系统?

2023-12-29

我一直试图在网上找到 Facebook 风格的“点赞”按钮的示例,但一直找不到类似的东西。我想做的是,在用户可以按下的图像下方放置一个按钮。一旦按下,它将增加数据库中图像记录的值,然后通过在现有数量上添加 + 1 来反映页面上的添加。我猜这需要 PHP、SQL 和 jQuery 才能实现。问题是我不知道从哪里开始。我已经创建了一个 PHP 脚本,通过提供图像 ID 来添加对特定图像的“点赞”。我已经创建了一个 jQuery 发布按钮,它可以发布到 PHP 并喜欢该图像。我所坚持的事情是更新页面以反映类似内容。

对于初学者来说,我认为到目前为止我为此编写的代码完全令人恶心,哈哈。

这是到目前为止我的所有代码。 PHP 输出“喜欢”计数和“喜欢”按钮,以及用于添加的代码。 $info 是我的整个图像文件表结果的数组:

Echo "<b>Likes:</b> ".$info['likes'] . "</span>";
Echo '<script src="http://code.jquery.com/jquery-latest.js"></script><script     type="text/javascript">function test() {$.post("http://stormstorm.com/like.php?   id='.$info['fileid'].'")</script>';
Echo '<br /><img onClick="test();" src="img/like.jpg"></p>';

类似的 PHP 在 like.php 中增加:

$id = $_GET['id'];
mysql_query("UPDATE files SET likes=likes+1 WHERE fileid=".$id) or die(mysql_error());

喜欢的 PHP 工作得很好,我对此很满意。但我认为表达喜欢的事情很糟糕。事情是我有一个 list.php 它将一个接一个地打印数据库的内容以打印列出的所有图像。因此,它会一遍又一遍地打印相同的脚本副本,通常将当前图像 ID 硬编码到发布中。我对此很陌生,但觉得这段代码很糟糕,而且它不会更新图像部分。

我本想使用 Javascript 来简单地获取 Likes 元素并 ++ 它,但是,然后它击中了我。我的列表将包含 100 多个相同的元素。您可能会发现我可能以错误的方式处理这个问题,我希望有人可以帮助我解决这个问题。


看起来您已经掌握了总体想法,只是粗略地实现了它。

您可能想为每个图像指定计数器元素,并在按下按钮后更新内部内容......

<img src="xxx.jpg">
<p>
    <a href="javascript:test({image_id});">Like</a> <span id="{image_id}_count">150</span>
</p>

其中 {image_id} 显然对于每个图像来说都是唯一的。将其传递给 test({image_id}),然后在成功时更新总数的 html...

function test(id)
{
    $.ajax({
        url: 'http://stormstorm.com/like.php',
        method: 'get',
        data: {id: id},
        dataType: json,
        success: function(data)
        {
             $('#' + id + '_count').html(data.total);
        }
    });
}

在你的 php 中,你将完全执行你所做的操作,除了将 json 编码数组返回给 js 进行更新...

$id = mysql_real_escape_string($_GET['id']);
mysql_query("UPDATE files SET likes=likes+1 WHERE fileid=".$id);
if(mysql_affected_rows() > 0)
{
    $sql = mysql_fetch_assoc(mysql_query("SELECT `likes` FROM `files` WHERE `fileid` = ".$id));

    echo json_encode(array('total' => $sql[0]['likes']));
}

请记住,这是一个非常糟糕的实现。真正的系统绝对应该不允许人们一遍又一遍地重复单击按钮来增加某些东西。当然,根据您的需要,您应该通过登录来限制它,甚至记录与他们喜欢的文件相关的用户信息,而不仅仅是在数据库中增加一个数字。 因此,您将有一个关系表来存储每个点赞的信息。这样,您可以查询数据库以确保用户在增加数字之前尚未喜欢该文件。

希望这是有道理的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建Facebook风格的“点赞”系统? 的相关文章

  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 如何移动 Zend_Layout 的“视图”

    通常它会是这样的结构 application modules somemodule views scripts index index phtml 我如何将其移动到 application templates somemodule temp
  • 如何让 Laravel“确认”验证器将错误添加到确认字段?

    默认情况下 Laravel 确认 验证器将错误消息添加到原始字段 而不是通常包含确认值的字段 password gt required confirmed min 8 是否有任何简单的方法来扩展验证器或使用一些技巧来强制它始终在确认字段而不
  • Facebook 扩展权限

    更新2 好的 通过更改使其 有点 工作 loginUrl facebook gt getLoginUrl array canvas gt 1 fbconnect gt 0 req perms gt publish stream next g
  • 从 Symfony2 中的 http_basic auth 注销

    每当我去 admin logout 我已正确重定向到项目的根目录 但在访问时仍处于登录状态 admin 因为没有提示我输入凭据 这是我的配置 安全 yml security firewalls admin area pattern admi
  • “警告:mysql_query():提供的参数不是有效的 MySQL-Link” - 为什么?

    我的代码有什么问题吗 我不断收到此错误 Warning mysql query supplied argument is not a valid MySQL Link resource in functions php on line 4
  • PHP DBlib PDO 问题

    我正在尝试通过 php 连接到 MSSQL 服务器 但我的 pdo 连接给我带来了困难和我不太理解的错误 我在下面粘贴的代码一周前运行得很好 突然间它就停止了 没有任何人进行任何更改 我仍然可以连接到服务器并直接从命令行运行查询 但我在 p
  • PHP 函数 iconv 字符编码从 iso-8859-1 到 utf-8

    我正在尝试将字符串从 iso 8859 1 转换为 utf 8 但是当我找到这两个字符 和 时 函数返回 一个字符 是一个里面有两个数字的正方形 我该如何解决这个问题 我认为您正在寻找的编码是Windows 代码页 1252 http en
  • 如何将JS/CSS文件包含到Slim框架的模板中?

    我正在使用 Slim 框架开发一个简单的网络应用程序 我遇到了一个可能很简单的问题 我想将静态文件 CSS 和 Javascript 包含到我的模板中 我的项目文件夹结构如下 index php lt where all the routi
  • 我们可以在 Bash 脚本中使用 PHP 吗?

    我有一个 bash 脚本abcd sh bin sh for i in seq 8 do ssh w i uptime ps elf grep httpd wc l free m mpstat done pid sleep 1 kill 9
  • 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是以下实例

    我创建了一个新的中间件来检查用户令牌我创建了中间件然后添加到 kernal php 但是当我尝试访问中间件中的 request 时我收到错误 这是我的中间件代码 namespace App Http Middleware use Illum
  • Zend 框架会话丢失

    我有一个注册表单 当用户注册时 它会将他重定向到他的页面 在 Firefox 和 Chrome 中一切正常 但在 Internet Explorer 中则正常 看起来保存用户信息后 会话就关闭了 并且不会将用户重定向到他的页面 我该如何解决
  • 很简单的PHP加法问题

    我想我已经关注这个问题太久了 为什么这段代码打印 no 它应该打印 yes 不是吗 我在 PHP 5 3 和 PHP 5 2 上尝试过 都打印 no See 比较浮点数 http www cygnus software com papers
  • 将 jQuery 与 Selenium WebDriver 结合使用 - 如何将 JSON 对象转换为 WebElement?

    我正在使用 Selenium WebDriver 我想执行 jQuery 代码来查找一些元素 我的代码如下 public function uploadGrantDoc script return itemlist grant file u
  • 从 PHP 启动守护进程

    对于网站 我需要能够启动和停止守护进程 我目前正在做的是 exec sudo etc init d daemonToStart start 守护进程已启动 但 Apache PHP 挂起 做一个ps aux透露sudo它本身变成了僵尸进程
  • Symfony2 - 在自定义验证器中调用 EmailValidator

    我正在创建一个自定义验证器约束来验证 联系人 类似于 John Doe 电子邮件受保护 gt 遵循Cookbook http symfony com doc current cookbook validation custom constr
  • PHP + MySQL 队列

    我需要一个充当队列的简单表 我的 MySQL 服务器限制是我不能使用 InnoDB 表 只能使用 MyISAM 客户 工人将同时工作 他们每次都需要接受不同的工作 我的想法是执行以下操作 伪代码 job lt SELECT FROM que
  • 什么是 PHP session_start()

    它是否基于 cookie 启动当前会话 从 PHP 网站上得到的 PHP如何控制会话 如果我在用户打开我的登录页面时启动会话 我什至可以使用该会话做什么 我可以使用当前会话来获取有关登录用户的信息吗 PHP 会话系统允许您将数据安全地存储在
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att
  • SimpleXML 返回空数组

    我正在尝试使用 Google Maps API 和 PHP SimpleXML 获取城市的纬度和经度 我尝试这样做 xml simplexml load file http maps googleapis com maps api geoc

随机推荐

  • 检测从父级(开启器)关闭的新选项卡

    我读过很多帖子 但似乎没有一个能准确回答我的问题 是否可以检测由打开的选项卡关闭target blank attr 我需要打开一个新选项卡 窗口 用户将选择一个选项 然后选项卡关闭 当该选项卡关闭时 我需要刷新原始窗口 父窗口或打开窗口 有
  • 根据日期计算数据表中的前几行

    如果这里的一些术语不正确 我深表歉意 我来自 SQL 背景 我才刚刚进入 R 世界 我有一个数据表 其中包含一系列按日期排序的条目 数据表中的字段之一是分组值 一个是时间值 随着数据按组排序 或键入 我是 R 的新手 仍然不确定差异 然后是
  • 如何从 WSL (Ubuntu) Bash 运行 Windows 可执行文件

    随着Windows 10 周年更新2016 年夏天 有机会跑步ubuntu新的二进制文件适用于 Linux 的 Windows 子系统 WSL https blogs msdn microsoft com wsl 2016 04 22 wi
  • 使用 putty 将 EFS 安装到红帽 ec2 实例上时无法解析 EFS 的 DNS 名称

    我遇到一个问题 无法使用 DNS 名称在 red hat ec2 实例上安装 EFS 它抛出错误 mount nfs4 无法解析服务器 us east 1a fs c2aXXXX efs us east 1 amazonaws com 名称
  • 类型错误:无法连接非 NDFrame 对象

    我有这个日期时间索引 dates DatetimeIndex 2017 06 09 2017 06 10 2017 06 11 2017 06 12 2017 06 13 2017 06 14 dtype datetime64 ns fre
  • 如何在 Symfony (Twig) 中包含可重用的小部件?

    所以 我对 Symfony 和 Twig 还很陌生 我想知道如何最好地在模板中包含 创建可重用代码片段 例如 假设您有一个想要在每个页面上显示的侧边栏 extends AppBundle base html twig block body
  • 管理文件java上的大数组

    我正在编写一个需要大量内存的Android应用程序 有时我的双数组达到兆字节的大小 并且我以某种方式需要在可行的时间提供所有可用的数据 我发现大多数时候我无法将它们全部放在 RAM 上 所以我正在寻找一个java API 它可以让我创建在文
  • 动态 Linq 包含多个值

    如何在 Dynamic Linq 中将多个值与 Contain 一起使用 正常 Linq 的预期 using System using System Linq public class Simple public static void M
  • 实体框架错误

    我在实体框架中编写 SQl 查询 var query1 database Database SqlQuery
  • 使用 swift 关闭其他应用程序

    有没有办法快速关闭正在运行的应用程序 例如 如果我创建的应用程序需要关闭 safari 这是用于关闭正在运行的应用程序的 Swift 5 版本不使用 AppleScript AppleScript是一种完美的方式 但不是唯一的方式 本例中以
  • 如何获取特定列的最后一行并使用“appendRow”将数据附加到该行

    我无法找出如何获取其中包含数据的特定列的最后一行 如下所示 确定单列中的最后一行 https stackoverflow com questions 17632165 determining the last row in a single
  • 使用 Stream.BeginRead 进行顺序异步读取

    我正在编写一个类 该类公开流的一部分以供阅读 由于数据可能同时从多个不同的分段读取 因此在任一时间只能有一个操作处于活动状态 我的想法是在每次操作之前锁定底层流 正在锁定周围的流BeginRead调用足以确保从底层流中不同位置的并发异步读取
  • C++ 中的静态可变成员变量?

    为什么或出于什么原因不可能在 C 中将类成员变量声明为static mutable 就像是 static mutable int t This won t compile 对我来说 没有理由禁止这样的声明 例如 出于维护全局类范围统计数据等
  • 使用 selenium C# 在文本字段上执行键盘敲击“Ctrl + A”、“Ctrl + C”和“Ctrl + V”

    How to simply want to input a value in a text box select the complete text from the text box using Ctrl a then copy it u
  • Linux 上共享对象 (.so) 的异常

    我有一个名为 ftest 的测试程序 它加载包含测试的 so 文件并运行在其中找到的测试 其中一项测试加载并运行一个 so 其中包含用于我们的 O RM 的 Postgres 数据库驱动程序 当 Postgres 驱动程序抛出该 so 文件
  • 从 Azure Functions 连接到 WCF 服务并对程序集绑定进行故障排除

    在哪里可以看到 Azure 函数尝试加载的程序集 就像Windows上的fuslogvw Update按要求更新标题以更好地反映已接受的答案 Update 将我的代码更改为使用 WebClient 手动 构造 SOAP 请求并且它可以工作
  • 准备好的语句、hibernate 和 HQL

    当将 HQL 转换为 SQL 时 Hibernate 在内部使用 JDBC 下的PreparedStatements HQL 中的内联参数是如何处理的 example public List
  • hive中分区和索引的区别

    我是 hadoop 和 hive 的新手 我会知道 hive中索引和分区有什么区别 什么时候使用索引 什么时候分区 谢谢你 索引是新的并且正在不断发展 正在添加功能 但目前索引仅限于单个表 并且不能与外部表一起使用 创建索引会创建一个单独的
  • WebHttpBinding 与 Http 和 Https

    我正在尝试在网站上使用 https 和 http 该网站具有充当 REST 服务并从 JavaScript 调用的 svc 文件 我的配置
  • 如何创建Facebook风格的“点赞”系统?

    我一直试图在网上找到 Facebook 风格的 点赞 按钮的示例 但一直找不到类似的东西 我想做的是 在用户可以按下的图像下方放置一个按钮 一旦按下 它将增加数据库中图像记录的值 然后通过在现有数量上添加 1 来反映页面上的添加 我猜这需要