当我尝试更新表中的col时,我有问题。
我有桌子,我存储了朋友关系和朋友请求。
朋友表如下所示:
INSERT INTO friends
(friend_one,friend_two)
VALUES
('$user_id','$friend_id');
我使用以下插入语句添加好友。
UPDATE friends
SET status="1"
WHERE
(friend_one="$user_id" OR friend_two="$user_id")
AND
(friend_one="$friend_id" OR friend_two="$friend_id");
所有工作正常但我尝试确认朋友请求更新状态为1返回我0行受影响但查询成功。
确认请求:
friend_one friend_two status
---------- ---------- --------
2 1 0
所有时间都是一些人:
执行了1个查询,1个成功,0个错误,0个警告
查询:UPDATE friends SET STATUS = 1 WHERE(friend_one = 2 OR friend_two = 2)AND(friend_one = 1或friend_two = 1)
0行受影响
执行时间:0.037秒传输时间:0秒总时间: 0.038秒
我在表格中只有一条记录但从未将状态更改为1:
angular.module('my-app.config', [])
.config(function($ionicConfigProvider) {
$ionicConfigProvider.views.maxCache(0);
});
答案 0 :(得分:1)
使用OR
运算符代替AND
:
UPDATE friends
SET status="1"
WHERE
( (friend_one="$user_id" OR friend_two="$user_id")
OR
(friend_one="$friend_id" OR friend_two="$friend_id") );
答案 1 :(得分:1)
这样做:
UPDATE friends
SET status="1"
WHERE
(friend_one="$user_id" AND friend_two="$friend_id") // check the change in line
OR // replace AND with OR
(friend_one="$friend_id" AND friend_two="$user_id");// check the change in line
答案 2 :(得分:1)
嗨,我认为更好的方法是使用独特的友谊ID,如:
friendship_id | sender_id | reciever_id | status
1 5 6 0
因此,当您发送确认请求时,查询将如下所示
$sql="SELECT friendship_id from friends where sender_id='$sender' and reciever_id='$reciever' OR sender_id='$reciever' and reciever_id='$sender'";
$row=mysqli_fetch_assoc($sql);
然后使用此查询将其发送到确认脚本
$confirm="UPDATE friends SET STATUS=0/1/2 where friendship_id='$row[friendship_id]'";
希望这有效!我愿意讨论!谢谢!
答案 3 :(得分:0)
更改OR运算符而不是AND运算符 试试这个。
UPDATE friends
SET status="1"
WHERE
(friend_one="$user_id" AND friend_two="$friend_id") // check the change in line
OR // replace AND with OR
(friend_one="$friend_id" AND friend_two="$user_id");// check the change in line