当前位置: 首页 > 知识库问答 >
问题:

mysqli从两列获取数据

乜胜泫
2023-03-14

我有3个表users(id、name等)、trips(id、user_id、from、to、destination)、vactions(id、user_id、from、to、destination)。我使用mysqli,我不知道怎么做,我需要像这样获取这个表

Array
(
    [0] => Array
        (
            [id] => 1
            [current_status] => 0
            [username] => user1
            [fullname] => Eric Norman
            [trips] = > Array
            (
                [0] => Array 
                (
                    [date_from] = 02/06/14
                    [date_to] = 05/06/14
                    [destination] = "Grece" 

            )
           [vacations] = > 
        )

    [1] => Array
        (
            [id] => 2
            [current_status] => 0
            [username] => user2
            [fullname] => Joe Grey
            [trips] = > Array
            (
                [0] => Array 
                (
                    [date_from] = 02/06/14
                    [date_to] = 05/06/14
                    [destination] = "Grece" 

            )
            [vacations] = >  
        )

)

我试过左加入,但我不工作,我的代码现在只适用于用户:


    conn = new mysqli($host,$user,$password,$db);
    $result = mysqli_query($conn, "SELECT id, current_status, username, CONCAT(first_name,'  ',last_name) as fullname FROM user");
    while ($row = $result->fetch_assoc()) {
            $users[] = $row;
        }

共有1个答案

须志新
2023-03-14

我认为最好的方法是获得所有的用户,然后使用Foreach来获得所有的旅行和假期。因为我不确定您是否可以使用简单的SQL查询获得这种数组结果,所以我认为您需要一个ORM。

$users = getAllUsers();
foreach($users as $user){
  $user['trips'] = getTripsByUserId($user['id']);
  $user['vacations'] = getVacationsByUserId($user['id']);
}

当然,您需要将这3个方法编码为“getAllUsers”;“getTripsByUserId”和“getVacationsByUserId”是使用where子句对数据库进行简单的SELECT查询。

 类似资料:
  • 问题内容: 警告:mysqli :: query():无法在第43行上的C:\ Program Files(x86)\ EasyPHP- DevServer-13.1VC9 \ data \ localweb \ my Portable files \ class_EventCalendar.php中获取mysqli 以下是我的连接文件: 这是我的课: 我对OOP PHP不太满意,而且不确定为什么

  • 问题内容: 我需要从结果对象获取所有行。我正在尝试建立一个将容纳所有行的新数组。 这是我的代码: 应该是包含所有行的新数组,但是我得到一个空数组。 任何想法为什么会这样? 问题答案: 您有一个轻微的语法问题,即错误的分号。 注意结尾的分号吗?这意味着后面的程序段不是循环执行的。摆脱它,它应该可以工作。 另外,您可能需要检查查询是否确实有效:

  • 我有一个从Excel文档导入的数据框,如下所示: 我希望能够返回列1的内容作为一个列表,这样我就可以运行一个for循环,并为每个集群创建一个Excel工作表。 是否也可以将整列或整行的内容返回到列表中?例如

  • 问题内容: 我试图了解mysqli扩展名,并做了谷歌,但除了php.net这是非常有用的很少信息。 现在毕竟这是我想要实现的MySQL扩展,如下所示: 用mysqli我怎么能做到这一点?我肯定我错过了很多事情。请以示例的方式帮助我,以实现我的目标。 问题答案: 使用mysqli,您可以通过以下方式进行操作(假设mysqli对象已创建- 您也可以使用过程方法,只是略有不同):

  • 问题内容: 如何获得特定表中的列名列表? IE。 火鸟表: 得到这样的列表: 问题答案: 如果要获取特定表中的列名列表,则这是您需要的sql查询: 我在firebird 2.5中尝试过此方法,并且可以正常工作。 顺便说一句,YOUR-TABLE-NAME周围的单引号是必需的

  • 问题内容: 我想从2个不同的表中获得几列的总和(这些表具有相同的结构)。 如果我只考虑一个表,我会写这种查询: 但是,我也想使用表T_BAR中的数据,然后使用查询返回以下列: MONTH_REF SUM(T_FOO.amount1)+ SUM(T_BAR.amount1) SUM(T_FOO.amount2)+ SUM(T_BAR.amount2) 一切都按的值分组。 请注意,给定记录可以在一个表