【问题标题】:Join array containing multiple user IDs with users table and create new array将包含多个用户 ID 的数组与用户表连接并创建新数组
【发布时间】:2014-08-06 23:23:47
【问题描述】:

我有一个包含一堆用户 ID 的数组:

array('1,2,3,4')

我需要将这些用户 ID 与 users 表中的 id 列进行匹配,并创建包含用户名和姓氏的数组。我知道 LEFT JOIN 可能是我必须使用的,但我不知道如何循环它。我前一段时间尝试过 foreach (抱歉,删除了代码),但无法让它工作。有什么想法吗?

谢谢。

【问题讨论】:

    标签: php mysql sql arrays


    【解决方案1】:

    Mysqli 扩展程序。试试这个代码:

    $userIds = array(1,2,3,4);
    $users = array();
    con=mysqli_connect("example.com","peter","abc123","my_db");
    // Check connection
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    
    $result = mysqli_query($con,"SELECT * FROM users
    WHERE id in ('".implode(',',$userIds)."')");
    $count=0;
    
    while($row = mysqli_fetch_array($result)) {
      $users[$count]['FirstName'] = $row['FirstName'];
      $users[$count]['LastName'] = $row['LastName'];
      $count++;
    }
    
    print_r($users);//result
    

    【讨论】:

    • 我对这段代码做了一些修改,但这绝对让我找到了我需要的地方。我将 while 循环更改为此并回显结果: while($row = $r->fetch_assoc()){ $multiple_row_result[] = $row; }
    【解决方案2】:

    尝试以下方法:

    $arr = array('1,2,3,4');
    $result = array();
    $results = mysql_query("SELECT id,first_name,last_name FROM table_name WHERE id IN (".$arr.")");
    if(mysql_num_rows($results) > 0) {
        while($row = mysql_fetch_assoc($results)) {
           $result[] = $row;
        }
    }
    echo '<pre>';
    print_r($result);
    echo '</pre>';
    

    【讨论】:

    • 感谢您的回答。这就是我得到的:mysql_num_rows() 期望参数 1 是资源,给定的布尔值
    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 2017-07-17
    • 2018-12-02
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多