在mysql表中搜索数组

时间:2012-04-04 08:47:12

标签: php mysql arrays

这就是我想要做的事情:

 $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号码数组,我想要他们的用户名,在我自己的想法中,我的方法是正确的,但结果却不是。

输出只是第一个用户名,不显示其他用户名

2 个答案:

答案 0 :(得分: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 ) . ");";

希望它有所帮助...

答案 1 :(得分:2)

  1. $ usernamesFound甚至是一个字符串?请在循环上方声明。
  2. 在变量名称和。= - 运算符
  3. 之间添加空格
  4. 我建议你把用户名放在一个数组中

    $ users = array();

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

  5. 另请使用implode而不是join。