0

ユーザー名をそれぞれのユーザー ID に変換しようとしていますが、何らかの理由で配列の最初の項目のみが変換されています。残りは、結果の配列では単なる null です。同じ名前を 3 回入力できますが、配列の最初の要素だけが変換されます。

次の配列をユーザーIDに変換しようとするとします

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

結果の配列は

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

これは、ユーザー ID を検索するループです。

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

結果を次のインデックスにループする必要があるように見えます。

于 2012-12-27T19:39:33.340 に答える
0

変数名をめちゃくちゃにしたようです。配列
を設定しますが、 結果をプッシュすることを繰り返しますが、再度チェックします。 $users$user_list
$user_id_list$users

完全なコードを実行して、少しデバッグしてみてください。

関数自体については、クエリに挿入する前に文字列を適切にフォーマットする必要がありますが、見栄えがします。

于 2012-12-27T19:45:06.630 に答える