【问题标题】:How to select from mysqli if value from other table equals specific value?如果另一个表中的值等于特定值,如何从 mysql 中选择?
【发布时间】:2017-01-10 18:57:19
【问题描述】:

我知道我应该发布到目前为止我尝试过的代码。我真的不知道从哪里开始。所以此时我有 2 个有效的 mysqli 语句,但我不知道如何组合它们。

所以,我有两张桌子。

$sql_ONE = mysqli_query($mysqli, "SELECT * FROM todo WHERE status='open' ORDER BY date ASC LIMIT " . $offset . "," . $items_per_page); 
$sql_TWO = mysqli_query($mysqli, "SELECT * FROM permission WHERE memberID=$memberID AND allowed='yes'"); 

我使用$offset$items_per_page 进行分页。

但它来了:有第二个表,其中包含成员列表、他们的 memberID 和一个值(是/否),无论他们是否可以看到第一条语句中的行。因此,在第一个 mysqli 语句中,选择了 status=open 的所有行。在此行打印到屏幕上之前,PHP 需要检查页面上的成员是否可以看到它。所以它应该只在 allowed=yes 时显示。

我不希望他们在一个表中,因为这样我就需要为每个成员设置一行。

如何合并这两个表格并在我的屏幕上显示它们,同时分页显示正确的行数?

【问题讨论】:

  • 你想加入哪些属性?
  • 我要sql_ONE的ID。 memberID 已在用户登录时设置。所以在sql_TWO中,我想看看“allowed”的值是设置为yes还是no,其中ID = ID(来自sql_ONE)和memberID = $memberID。
  • 那么,当value=yes时,来自sql_ONE的所有内容都可能在屏幕上可见
  • 当value=no时,应该从sql_ONE转到下一行

标签: php mysqli


【解决方案1】:

我不完全了解您的数据库,但到目前为止,我已经得出了这个

SELECT todo.ID
FROM todo
LEFT JOIN permission
ON todo.ID=permission.ID
where permission.allowed='Yes' AND permission.memberID=$memberID

它将连接两个表'todo'和'perrmission',并根据权限表中的条件返回'todo'的ID。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 2019-03-05
    • 1970-01-01
    • 2015-12-03
    相关资源
    最近更新 更多