【问题标题】:Returns 1st row返回第一行
【发布时间】:2017-02-26 20:38:34
【问题描述】:

我正在尝试获取用户登录时的数据。这是查询

$sql = "Select * from user LEFT JOIN user_bank ON user_bank.userID=? LEFT  JOIN user_image ON user.id=? AND user_image.userID=? LEFT  JOIN user_location on user_location.userID=?";

$query = $this -> db -> query($sql, array($sessionID, $sessionID, $sessionID, $sessionID));
return $query -> row();

现在这里的 id 是 2,当我打开查询配置文件时,它显示 id 为 2 的查询,但返回第一行的记录而不是第二行,为什么?

【问题讨论】:

  • 试试 return $query ->result();或返回 $query -> result_array();然后 var 转储结果。
  • 我做到了,显示所有记录

标签: php database codeigniter


【解决方案1】:

如果您需要特定订单,请使用 order by

$sql = "Select * 
        from user 
        LEFT JOIN user_bank ON user_bank.userID=? 
        LEFT  JOIN user_image ON user.id=? AND user_image.userID=? 
        LEFT  JOIN user_location on user_location.userID=?
        ORDER BY your_table.your_column";

如果您只需要第一行,请使用限制

$sql = "Select * 
        from user 
        LEFT JOIN user_bank ON user_bank.userID=? 
        LEFT  JOIN user_image ON user.id=? AND user_image.userID=? 
        LEFT  JOIN user_location on user_location.userID=?
        ORDER BY your_table.your_column
        LIMIT 1";

【讨论】:

    【解决方案2】:

    您没有“用户”表的 where 子句。它返回所有用户记录,并且对于所有记录,它连接来自 Id 2 的详细表的数据。最后使用“where Id = 2”。

    【讨论】:

    • 没问题,兄弟。如果它解决了您的问题,您可以接受作为答案来帮我一个忙吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 2016-01-14
    • 1970-01-01
    相关资源
    最近更新 更多