$stack = array('111','222','333','444');
              $query="select * from name";
              $cursor = exequery($connection,$query);
                  while($ROW=mysql_fetch_array($cursor))
                         {
                             $Name=$ROW["Name"];    
                             $age=$ROW["age"];
                                     foreach ($stack as $key => $arrayValue)//循环数组
                                      {
                                             if($arrayValue== $Tool_Name)
                                                   $var="名字重复";
                                       }
       、
                                     <tr>
                                         <td> $var</td>//当重复的时候输出“名字重复“,不然为空
                                           <td>$age</>
                                      <tr>
、                          }
问题是这样循环会有问题,数据库中的值如何和数组中的进行比较,得出正确结果。

解决方案 »

  1.   

    代码真乱啊。。没贴完整吧,那个$Tool_name是指$Name吗?如果只是简单比较,用in_array()函数不是方便多了:
    $var = '';
    while($ROW = mysql_fetch_array($cursor)) {
      if (in_array($ROW['Name'],$stack)) $var = '名字重复';
      break; //如果已经找到就不用再找下去了吧?
    }
      

  2.   

    foreach ($stack as $key => $arrayValue)//循环数组
                                          {
                                                 if($arrayValue== $Tool_Name)
                                                       $var="名字重复";
                                           }
           、
                                         <tr>
                                             <td> $var</td>//当重复的时候输出“名字重复“,不然为空
                                               <td>$age</>
                                          <tr>
    ==================================
    改成:
    foreach ($stack as $key => $arrayValue)//循环数组
                                          {
                                                 if($arrayValue== $Name){
                                                      echo $Name."名字重复";
                                                      break ;
                                                  }                                       }
           、
                                         
      

  3.   

    其实也可以在sql里判断,效率高select * from name where Name in $stack
      

  4.   

     $stack = array('"111"','"222"','"333"','"444"');
     $query=mysql_query("select * from name where Name in ".implode(',',$stack)."");
     while($row = mysql_fetch_assoc($query)){
        echo $row['Name']."重复的用户名<br />\n" ;
     }
      

  5.   

    那个sql改一下:select * from name where Name in (".implode(',',$stack).")
      

  6.   

    把查询结果输出到数组
    对两个数组进行array_intersect(),代码不写了,自己看手册,这个函数是应该学的