0

我正在尝试将用户名转换为各自的用户 ID,但由于某种原因,只有数组中的第一项被转换。其余的只是结果数组中的空值。我可以输入相同的名称 3 次,但仍然只转换数组的第一个元素。

假设我尝试将以下数组转换为他们的用户 ID

$users = [1 => test1, 2 => test2, 3 => test3]

结果数组是

$users = [1 => 1, 2 => , 3 => ]

这是查找用户标识的循环

foreach($user_list as $user){
    array_push($user_id_list,$convert->userid_lookup($user));
}

这是转换函数

function userid_lookup($username){
    echo $username //each name appears here
    $lookup = mysql_query("select userid from users where username = '$username' ");
    $result = mysql_fetch_array($lookup);
    echo $result['userid']; //only the first element's id appears
   return $result['userid'];
}

为什么只转换第一个元素?我知道每个项目都在处理,因为当我回显每个项目时,它们会显示。

4

2 回答 2

0

看来您弄乱了变量名。
设置$users数组但$user_list
将结果迭代推入$user_id_list$users再次检查。

尝试运行完整的代码并稍微调试一下。

对于函数本身 - 它看起来不错,尽管您必须在将字符串插入查询之前正确格式化字符串。

于 2012-12-27T19:45:06.630 回答
0

在我看来,您必须将结果循环到下一个索引。

于 2012-12-27T19:39:33.340 回答