首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MySQL查询问题?

MySQL查询问题?
EN

Stack Overflow用户
提问于 2010-06-27 21:28:22
回答 4查看 74关注 0票数 0

我试图阻止成员将自己添加为好友,但是我似乎不能让它工作,我的MySQL查询中的最后一行代码AND '$user_id' <> '$friend_id'正在尝试检查用户id是否与朋友id相同,如果是,则停止运行查询,但由于某些原因,代码仍将运行。

我如何解决这个问题,当用户尝试将自己添加为好友时,查询停止运行?

下面是MySQL查询。

代码语言:javascript
代码运行次数:0
运行
复制
 SELECT *
 FROM friends
 WHERE user_id = '$user_id'
 AND friend_id = '$friend_id'
 AND '$user_id' <> '$friend_id'

这是MySQL表。

代码语言:javascript
代码运行次数:0
运行
复制
CREATE TABLE friends (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
friend_id INT UNSIGNED NOT NULL,
PRIMARY KEY (id),
);
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-27 21:43:01

为什么你不能像这样简单地做这件事..

当然,您会有一个提交userID和friendID的表单。例如,表单提交的值为..

代码语言:javascript
代码运行次数:0
运行
复制
$user_id;
$friend_id;

那么,为什么你不能比较

代码语言:javascript
代码运行次数:0
运行
复制
if($user_id == $friend_id) {
   //user has selected himself as friend
}
else {
   // different user has been selected as friend
}

如果我是对的,在表单中你也可以通过不显示自己的ID来限制选择作为朋友。

有什么意见吗?

票数 1
EN

Stack Overflow用户

发布于 2010-06-27 21:36:16

代码语言:javascript
代码运行次数:0
运行
复制
 "SELECT *
 FROM friends
 WHERE user_id =" . '$user_id' .
 " AND friend_id = " . '$friend_id' . 
 " AND user_id <> friend_id";

应该可以工作(假设您使用的是PHP)。

票数 0
EN

Stack Overflow用户

发布于 2010-06-27 21:47:41

您希望使用select查询存档哪些内容?

目前,你似乎想要显示一个用户的所有好友。如果是这样的话,那么你就应该阻止用户更早地将自己添加为好友。在执行insert语句时,检查它是否是合法的朋友。

这样,您的数据库中就不会有坏数据,并且节省了数据库资源,因为数据库不必在您每次显示好友时都进行检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3127476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档