【发布时间】:2014-08-06 23:23:47
【问题描述】:
我有一个包含一堆用户 ID 的数组:
array('1,2,3,4')
我需要将这些用户 ID 与 users 表中的 id 列进行匹配,并创建包含用户名和姓氏的数组。我知道 LEFT JOIN 可能是我必须使用的,但我不知道如何循环它。我前一段时间尝试过 foreach (抱歉,删除了代码),但无法让它工作。有什么想法吗?
谢谢。
【问题讨论】:
我有一个包含一堆用户 ID 的数组:
array('1,2,3,4')
我需要将这些用户 ID 与 users 表中的 id 列进行匹配,并创建包含用户名和姓氏的数组。我知道 LEFT JOIN 可能是我必须使用的,但我不知道如何循环它。我前一段时间尝试过 foreach (抱歉,删除了代码),但无法让它工作。有什么想法吗?
谢谢。
【问题讨论】:
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
【讨论】:
尝试以下方法:
$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>';
【讨论】: