用一个链表或者用一个数组存储(确切地说用栈)$a的值,然后每次取值都比较,有相等则不进栈,只输出$b与$c,无则进栈,输出$a,$b,$c.不知这样行不?

解决方案 »

  1.   

    您说的是这个意思吧?加一个变量用来存放$a, 再判断它们两个是否相等,若相等则重复记录显示为“-”。可下面的代码却不能实现,它把$a的记录,显示时为隔一行显示一条,但$a不一定每两行都是重复的。
     $a=$rs->fields["a"];
       $b=$rs->fields["b"];
       $c=$rs->fields["c"];
    if ($ss!=$a){
    $ss=$a;
    }else{
    $ss="-";
    }
    echo "<tr>";
    echo "<td width=50 >$ss</td>";
    echo "<td width=50 >$b</td>";
    echo "<td width=50 >$c</td>";
    echo "</tr>";
    $rs->movenext();
      

  2.   

    我明白你的意思,你是说$a可能与上面的一个相同,相同的话在表格中输出-代替,但是$b,$c无论相同与否都要输出是吧.
    $ss='';
    while(...)
    {$a=$rs->fields["a"]; 
    $b=$rs->fields["b"]; 
    $c=$rs->fields["c"];
     
    echo " <tr>"; 
    if ($ss!=$a)
     echo " <td width=50 >$a</td>";
    else
     echo " <td width=50>-</td>";echo " <td width=50 >$b </td>"; 
    echo " <td width=50 >$c </td>"; echo " </tr>"; 
    $ss = $a;
    $rs->movenext(); 
    }
      

  3.   

    下面的是写的代码,为什么它只能显示第一行的$a,而后面的$a都显示为“-”了。
    $ss="";
    while (!$rs->eof) {
       $i+=1;
       $a=$rs->fields["a"];
       $b=$rs->fields["b"];
       $c=$rs->fields["c"];
    echo "<tr>";
    if ($ss!=$a){
    echo "<td width=50>$a</td>";
    }elseif($ss==$a){
    echo "<td width=50>-</td>";
    }
    echo "<td width=50 >$b</td>";
    echo "<td width=50 >$c</td>";
    echo "</tr>";
    $ss=$a;
    $rs->movenext();}
      

  4.   

    应该考虑数据取出数据的时候过滤一下.而不应该在之后才去处理.把简单的复杂化..select distinct filedA from table where filedA=?
      

  5.   

    $a的数据有重复,但它后面的数据都要显示,且想把$a有得复时,把第一个$a显示到对应行,但不确定$a有几个重复。
    $a  $b   $c
    1   fds  fw
    -   dsf  dsf
    -   dsf   hg
    2   df   sdf
    3   df   dsse
    4   sdf  dsf
    -   df   sdf
    5   sdf  sdfe
    按上面的意思显示。
      

  6.   

    sql中取出来的,可以加下group by就可以去掉重复
    我遇到情况类似,
    a b 
    都是数组,
    把a中元素和b中每一个相比较,如果不相同,就写入到b末尾,这样完有时候,b中不没有重复元素了