1

これは私がやろうとしていることです:

 $allwinnersarra = array(26809,26805,24279,4839,20939,17678,4999,17745,1);

 $results_query = mysql_query("SELECT username FROM table_users WHERE userid IN('".join("','", $allwinnersarra)."')"); 

 while ($row = mysql_fetch_array($results_query)) {
        $usernamesFound.= $row['username'];
 }

 die($usernamesFound);

ID番号の配列があり、それらのユーザー名が必要です。私自身の考えでは、私のアプローチは正しいですが、結果は正しくありません。

出力は最初のユーザー名のみであり、他のユーザー名は表示されません

4

2 に答える 2

3

これを試して:

$allwinnersarra = array(26809,26805,24279,4839,20939,17678,4999,17745,1);
$allwinnersarra = implode( ',', $allwinnersarra );

$sql = "SELECT username FROM table_users WHERE userid IN 
          (" . mysql_real_escape_string( $allwinnersarra ) . ");";

それが役に立てば幸い...

于 2012-04-04T09:00:21.880 に答える
2
  1. $ usernamesFoundは文字列でもありますか?ループの上で宣言してください。
  2. 変数名と。=-演算子の間に空白を追加します
  3. ユーザー名を配列に入れることをお勧めします

    $ users = array();

    while($ row = mysql_fetch_array($ results_query)){$ users [] = $ row ['username']; }

  4. また、joinの代わりにimplodeを使用してください。
于 2012-04-04T08:54:52.270 に答える