我想计算两个成员之间的对话次数。当用户1访问用户2的配置文件时,我会得到一个可见的结果。但是当用户2访问配置文件1时,我没有任何结果。
public function getNumberConversations($sender, $receiver) {
$st = Database::getDatabase()->prepare("SELECT id, sender, receiver
FROM conversation
WHERE sender = ? AND receiver = ?
OR receiver = ? AND sender = ?
");
$st->execute(array($sender, $receiver, $receiver, $sender));
return $st->rowCount();
}发布于 2017-08-22 17:01:56
我认为你应该改变
$st->execute(array($sender, $receiver, $receiver, $sender));使用
$st->execute(array($sender, $receiver, $sender, $receiver));在您的情况下,括号是可以的(并且优先)
发布于 2017-08-22 17:01:36
对条件使用大括号
public function getNumberConversations($sender, $receiver) {
$st = Database::getDatabase()->prepare("SELECT id, sender, receiver
FROM conversation
WHERE (sender = ? AND receiver = ?)
OR (receiver = ? AND sender = ?)
");
$st->execute(array($sender, $receiver, $sender, $receiver)); // also notice this
return $st->rowCount();
}发布于 2017-08-22 17:02:07
对于分隔条件,您需要加上括号。此外,您在这两个上交换条件,因此它将变得相同。尝试以下答案:
public function getNumberConversations($sender, $receiver) {
$st = Database::getDatabase()->prepare("SELECT id, sender, receiver
FROM conversation
WHERE (sender = ? AND receiver = ?)
OR (receiver = ? AND sender = ?)
");
$st->execute(array($sender, $receiver, $sender, $receiver)); //<----change here also
return $st->rowCount();
}https://stackoverflow.com/questions/45813194
复制相似问题