PHP子查询选择朋友表中与我成为朋友的所有用户的个人资料

2024-04-24

在在这里发布问题之前我做了几个小时的研究,但没有运气。 让我们从表中的示例开始,以便您轻松理解我想要做什么:

在配置文件表中,我注册了配置文件,它们的 profile_id 是:
john123
joee
smith
hassey

上述个人资料彼此是朋友,朋友表由两个属性组成,即个人资料一和个人资料二。以下是他们如何成为朋友的:

john123 与 joee 成为朋友
约翰123 与史密斯成为朋友
john123 与 Hassey 的朋友

哈西和乔伊的朋友
哈西和史密斯的朋友

当我尝试获取当前登录用户的好友时,它工作正常并使用以下查询返回 true:

$query = $this->db->query("SELECT profile_one, profile_two 
                           FROM friendsTbl
                           WHERE profile_one = '{$this->myID}' OR profile_two = '{$this->myID}'")

现在我还想获取这些用户的个人资料信息,以便我可以显示他们的名字和姓氏,因此我使用了如下的子查询,但是它返回 false,并且我得到了致命错误:调用成员的错误在非对象上使用 fetch_array() 函数。该错误显示在我使用 while 循环的行上。子查询:

$query = $this->db->query("SELECT profile_id FROM profileTbl
                           WHERE profile_id IN (SELECT profile_one, profile_two 
                           FROM friendsTbl
                           WHERE profile_one = '{$this->myID}' OR profile_two = '{$this->myID}')");

如上所述,上面返回错误和致命错误。 我真的很感谢你对此的帮助,因为我已经尝试了一天左右,但没有任何运气。

注意:我在这个项目中使用类和函数,因此它是面向对象的。


@John,在您修改查询之后。以下是正在输出的内容: 注意:未定义索引:第 609 行的 profile_one 注意:未定义索引:第 610 行的 profile_one
以下是好友表

+-------+-----------+------------+
|   id  |profile_one| profile_two|
+-------+-----------+------------+
|   33  | john123   |  hassey    |
|   34  | john123   |  smith     |
|   35  | joee      |  john123   |
+-------+-----------+------------+

以下是配置文件表:

+-------+-----------+-----------+-------------------+
| u_id  |   f_name  |   l_name  |     profile_id    |
+-------+-----------+-----------+-------------------+
|  23   |   john    |    larr   |   john123         |
|  26   |   joee    |    attwo  |   joee            |
|  27   |   smith   |    Mark   |   smith           |
|  28   |   hassey  |    Mess   |   hassey          |
+-------+-----------+-----------+-------------------+

现在我期望的结果是,无论哪个用户通过传递包含用户会话 ID 的 $this->myid 登录,它都会将这些朋友显示给与他们是朋友的用户。这在我最初发布的原始 sql 语句中有效,但现在我还希望朋友 f_name 和 l_name 显示将配置文件表中的 profile_id 与朋友表中的 profile_one 或 profile_two 相匹配。


我不认为您有理由使用子查询。如果某件事可以通过子查询完成,那么您很有可能可以使用JOIN。如果可能的话,使用JOIN是一个更好的解决方案并且通常更快。

尝试使用类似的查询:

SELECT 
    friendsTbl.*,
    profileTbl.*
FROM friendsTbl
LEFT JOIN profileTbl ON (profile_name = IF(friendsTbl.profile_one = 'john123',friendsTbl.profile_two, friendsTbl.profile_one) )
WHERE friendsTbl.profile_one = 'john123' OR friendsTbl.profile_two = 'john123'

这是一个sqlfiddle http://sqlfiddle.com/#!2/d0ca8f/2,显示该用户的所有好友john123

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

PHP子查询选择朋友表中与我成为朋友的所有用户的个人资料 的相关文章

  • PHP 中检查数字是否为浮点型

    这实在是太奇怪了 我有这段代码 rewardAmt amt if is float rewardAmt print r is float die else print r is not float die amt 的值为 0 01 但它正在
  • 在重复键上仅更新 Null 或空值

    我有一个 mysql 查询来合并主键 IMO 上的两个表 查询工作正常 但我遇到的问题是在重复键更新时 我只想更新 wp second 表的那些没有值的字段 简而言之 在重复键上 wp second 值仅应在 null 或空时更新 这是我到
  • 如何加密然后解密数据库类文件中使用的用户名和密码文本

    我创建了一个类文件database php 它处理所有sql 查询并连接到数据库 我将数据库的用户名和密码存储在一个变量中 如果可以访问 php 文件 很容易看到 我想加密该用户名和密码 这样即使在拥有该 php 文件之后 人们也无法知道原
  • 2 个使用 jQuery 或 Ajax 的自动完成/建议输入框,第二个框基于多个项目的第一个选择

    我尝试过很多 jquery 和 ajax 自动完成脚本 我发现很难尝试将它们中的任何一个集成到我需要的东西中 让我解释一下我想要实现的目标 我需要 2 个自动完成框 第二个从第一个中提取数据 它们还必须都支持多个条目 查询数据库中的数据 我
  • 在 Drupal 8 中如何在保存节点之前操作值?

    我有一个编辑节点表单 当用户输入新值并单击提交来编辑节点时 我首先想取回旧节点 操作该值 然后保存 更新节点 以下是我的解决方案 但它不起作用 function custom module form node form alter form
  • 使用列模数的更简洁方法

    我目前有一个人员列表 我已将其分为两列 但在完成代码后 我一直想知道是否有更有效或更干净的方法来完成同样的事情 echo table class area list tr Loop users within areas divided up
  • 在 JWT Laravel 中使用授权标头时获取 token_not_provided

    I read 本教程 http blog nedex io create an api server for mobile apps using laravel 5 1 我设法使它完美地工作 唯一的问题是当我从 令牌 token here
  • 选择特定值之后的项目

    说这是我的sql SELECT title author ISBN FROM bs books ORDER BY ISBN LIMIT 3 它只是从某个表中选择所有内容 标题 作者等 假设我想选择某个标题后面的所有项目 而不是按字母顺序或其
  • Prestashop 1.6 自定义模块未显示在前端

    我的模块没有显示在前端 我按照这个链接 doc prestashop com display PS15 Creating a PrestaShop module 在 prestashop 1 6 中创建自定义模块 我已经检查了位置 清除并禁
  • time() 会返回相同的输出吗?

    当用户注册时 我正在为 PHP 中的用户生成令牌 我想知道两个用户是否可以获得相同的令牌 因为这会破坏系统 请让我知道这是否足够 token md5 rand time 编辑 我现在正在使用我在另一个问题上找到的generate uuid
  • MySQL 连接丢失:系统错误:110

    我正在尝试通过专用服务器上的 localhost 连接到 mySQL 服务器 但我不断收到错误 Lost connection to MySQL server at reading initial communication packet
  • 使用 PHP simpleXML 查找一个我知道名称但不知道其所在位置的节点

    如果我知道要查找的节点的名称 但我可能不一定知道该节点的路径 我需要在 PHP 中查询 XML 字符串 我想我可以使用 xpath 做到这一点 但我无法弄清楚如何设置相对路径来查看文档中的任何位置 有人可以指出我正确的方向吗 我目前正在尝试
  • 流浪家园慢

    我有一个基于 Laravel Homestead 的 vagrant 服务器 用于在本地测试我的 Laravel 站点 大部分情况下它运行得很好 然而 最近 我遇到了问题 它会停止几分钟 典型 到几个小时 罕见 这种情况每 15 分钟左右就
  • 如何在node-mysql查询后获取警告

    如何获取查询执行后识别的相应警告 如下所示 connection query squery function err rows search for OkPacket in 2 dimension array var warningCoun
  • 如何在PHP中设置文本文件编码?

    如何在 PHP 中设置文本文件编码 例如 UTF 8 让我告诉你我的问题 这是我的代码 Output fwrite 具有类似的输出 但是当我创建test txt通过记事本并设置字符集UTF 8输出就是我想要的 我想在 PHP 文件中设置字符
  • 在 Amazon Dynamo DB 中编写复杂查询(数学表达式)

    我已经从 mysql 切换到 Dynamo DB 在 mysql 中 我使用了一个查询来获取靠近特定纬度和经度的所有用户 查询是 SELECT SQRT POW 69 1 latitude latitude 2 POW 69 1 longi
  • 在mysql查询中对多个日期范围求和

    我有一个 MySql 表 产品 包含三列 Date Product Qty 我的目标是每周对每种产品的数量进行求和 获取两个给定日期之间的 SUM 很容易 SELECT SUM qty FROM products WHERE date gt
  • PHP file_get_contents 错误 503

    我收到错误 503服务暂时不可用 与我通话 url https www okex com api v1 ticker do symbol ltc btc page json decode file get contents url true
  • 如何对变量使用 GRANT?

    我在 MySql 中使用 GRANT 和变量时遇到一些麻烦 SET username user123 pass pass123 GRANT USAGE ON TO username IDENTIFIED BY pass GRANT INSE
  • 我在 wamp for PHP 路径中遇到错误

    我的 wamp 服务器图标当前为橙色 这意味着 3 个服务器中只有 2 个正在运行 我无法打开 phpmyadmin 页面 因为它给出 404 未找到错误 如果我右键单击底部的 wamp 图标 则会收到一条错误消息 Error C wamp

随机推荐

  • 为什么我收到 PayPal Android Native Checkout SDK - 无效的 client_id 或 redirect_uri

    我正在使用新的 Android Native Checkout SDK 和 Kotlin 并且我一直遵循文档中的每一步 但这种情况不断发生 我不知道为什么 我也在尝试PayPal Android Native Checkout SDK 无效
  • 为什么调用指定命名空间的函数会更慢?

    我认为指定我给出的命名空间R要做的工作更少 但我可能是错的 library microbenchmark gt microbenchmark unique default c 1 1 10 base unique default c 1 1
  • 忽略 git log -p 中的文件

    我正在尝试总结我在一个项目上的工作 问题是我不想在输出中包含测试文件git log patch 这些文件位于一个名为mtest 但是 该文件夹还包含我确实想展示的测试套件代码 我想排除的测试文件具有扩展名mscx or xml 所以我希望过
  • 关闭文件夹/命名空间约定

    我看到人们在谈论烦恼Visual Studio 自动创建与项目文件夹相对应的命名空间 https stackoverflow com questions 1289425 should i stop fighting visual studi
  • 如何使用 conda 卸载 r-essentials?

    最近 我安装了r essentials using conda命令 conda install c r r essentials正如这个网址中所描述的 https anaconda org r r essentials https anac
  • Angular2 条件路由

    这可能是一个基本问题 但是在 Angular2 中是否有任何方法可以进行条件路由 或者 有人会在路由器之外这样做吗 我知道 ui router 有一定的能力做到这一点 但我在 Angular2s 路由器中没有看到类似的东西 如上所述 角路线
  • 通过值获取 std::queue 中元素的索引

    有没有一种简单的方法来获取元素在 a 中的位置std queue通过它在 C 中的值 例如 std queue
  • 重新声明第 3 方库中不正确的打字稿类型

    我正在使用带有 types winston 类型的winston 3 0 这些类型尚未完全兼容 并且我遇到了类型中的错误 我不知道如何纠正 这是我的代码 记录器 ts export function middleware express H
  • Show 的新实例声明

    我正在尝试在 Haskell 中为我创建但未成功创建的新数据类型添加实例声明 到目前为止我已经尝试过 data Prediction Prediction Int Int Int showPrediction Prediction gt S
  • 使用 Heroku 拒绝关系 django_migrations 的权限

    在尝试在 Heroku 上使用 django 迁移数据库更改时 我得到 psycopg2 ProgrammingError permission denied for relation django migrations 其他人已经能够通过
  • Prolog 中的匹配元组

    为什么Prolog匹配 X Xs 包含更多元素的元组 一个例子 test2 X Xs write X nl test2 Xs test2 X write X nl test
  • Z-index:如何使嵌套元素出现在其父元素下方

    这个小提琴应该说明这个问题 http jsfiddle net 5sqxQ 2 http jsfiddle net 5sqxQ 2 我希望子菜单出现在父菜单下方 然后我想用 JavaScript 来扩展它 以便在悬停在父 li 元素上时从下
  • 如何在使用 GPU 支持编译的 macOS 上安装 Xgboost?

    我尝试在过去 3 天的 MacOS Mojave 10 14 6 上安装集成了 GPU 支持的 xgboost 但是没有成功 我尝试了两种方法 pip 安装 xgboost xgboost 安装在这里 并且在没有 GPU 选项的情况下成功运
  • 使用 jQuery 获取视频的 Vimeo 缩略图

    我发现了类似的问题 但没有一个答案清楚 轻松地显示如何使用 jQuery 和 JSON 获取 vimeo 视频的缩略图 如果有人可以提供帮助 那就太好了 这就是我所得到的 但目前什么也没有显示 var vimeoVideoID 176315
  • 从 EditText 获取文本

    在我的应用程序中 我有一个 EditText 我想在它失去焦点时从中获取值 我该怎么做 Thanks 沿着这个思路应该可行 EditText setOnFocusChangeListener new View OnFocusChangeLi
  • 如何获取 Lottie 动画中可用的总帧数?

    我在我的 Android 应用程序中使用随机 Lottie 动画 我需要知道 Lottie 动画中使用的总帧数 根据总帧数 我想将动画从第一帧循环到特定帧 例如 如果 Lottie 文件包含 60 帧 那么我想执行从 1 到 我正在使用以下
  • 为什么因子中标签和水平的术语如此奇怪?

    不可设置函数的一个例子是labels 您只能在使用创建因子标签时设置它们factor 功能 没有labels lt 功能 因素中的 标签 和 水平 没有任何意义 gt fac lt factor 1 3 labels c one two t
  • 单击按钮,使用 jquery 检查标记所有复选框

    这就是我的表结构的样子 table tbody tr td class helpBod td tr tbody table
  • 是否存在间接函子?

    我正在寻找一个一元函子 它将取消引用它的参数并返回结果 我当然可以写一个 只是看起来有些东西应该已经存在了 所以给出代码 const auto vals 0 1 2 3 vector
  • PHP子查询选择朋友表中与我成为朋友的所有用户的个人资料

    在在这里发布问题之前我做了几个小时的研究 但没有运气 让我们从表中的示例开始 以便您轻松理解我想要做什么 在配置文件表中 我注册了配置文件 它们的 profile id 是 john123 joee smith hassey 上述个人资料彼