使用users表连接包含多个用户ID的数组并创建新数组

时间:2014-06-17 03:59:11

标签: php mysql sql arrays

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

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

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

感谢。

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

$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>';

答案 1 :(得分:0)

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