首頁 >後端開發 >php教程 >循环1个结果集,

循环1个结果集,

WBOY
WBOY原創
2016-06-23 14:09:43966瀏覽

表1

--------------------------------------------------------
| id  |  leiName  |  Nid  |  NName  |  Tid  |  Title  |
|  2  |  类名1    |  4   |   手机  |  99   |  ddddd |
|  3  |  类名2    |  5   |    手机1  |  98   |  dererd |
|  6  |  类名3    |  3   |    手机  |  97   |  dbbvd |
|  3  |  类名6    |  8   |    手机3  |  96   |  31231dd |


求,根据 Tid的从大到小排列,排3个结果,如 NName 相同的忽略 

手机
手机1
手机//相同的忽略
手机3

mysql语句怎么写的。。


回复讨论(解决方案)

group by NName

select * from
(select * from 表1 order by Tid desc) tt
group by NNname;

select * from
(select * from 表1 order by Tid desc) tt
group by NNname;

tt 是表名1吗?

tt 是别名

 
tt 是别名

最后的结果集排序,乱了。没按 Tid 排序。

你的sql是如何写的。建议你贴出
create  table....; 
insert into table....; 语句

及期望结果,并给以简单的算法描述。

你的sql是如何写的。建议你贴出
create  table....; 
insert into table....; 语句

及期望结果,并给以简单的算法描述。

--------------------------------------------------------
| id  |  leiName  |  Nid  |  NName  |  Tid  |  Title  |
|  2  |  类名1    |  4   |   手机  |  99   |  ddddd |
|  3  |  类名2    |  5   |    手机1  |  98   |  dererd |
|  6  |  类名3    |  3   |    手机  |  97   |  dbbvd |
|  3  |  类名6    |  8   |    手机3  |  96   |  31231dd |


SQL 视图就这样的哦。然后就是根据 Tid来排序,

99 手机 ddddd
98 手机1  dererd 
97 发现手机已经出现了,忽略,主要是怎么忽略这个。
96  手机2   31231dd

算了。我看使用数组来过滤好了。



 Array
(
    [id] => 39
   [xClass] => 超级王
    [Title] => 方式发送到
    [NURL] => 
    [CreateDate] => 2013-05-12 15:28:46
)
1
Array
(
    [id] => 32
    [DCName] => 玄
    [CURL] => 
    [Item1] => 风
    [Nid] => 62325
    [xClass] => 重天
    [Title] => fsfsd
    [CreateDate] => 2013-05-12 15:27:28
)
1
Array
(
    [id] => 32
    [DCName] => 玄
    [CURL] => 
    [Item1] => 风
    [Nid] => 62324
    [xClass] => 重天
    [Title] => dddddddd43432
    [CreateDate] => 2013-05-12 15:26:54
)

得到这样数组。
xclass =  重天。就排除,留1个。用那个函数。

运行#2的sql代码不行?

贴数组请贴出经 var_export() 后的数据。

$arr=你的数组;$t=array();foreach($arr as $v){    if(!isset($t[$v['xClass']])){	    $t[$v['xClass']]=$v;  	}}print_r(array_values($t));

运行#2的sql代码不行?

贴数组请贴出经 var_export() 后的数据。


得到的结果列表很乱,不是按Tid 排序。同时 当出现1个手机后,第三排在出现没忽略。

while($rsrow=$result->fetch_assoc()){
    echo '

';  <br>     print_r($rsrow);  <br>     echo '
';
}

得到的数组如下
Array
(
    [id] => 3
    [DCName] => 玄
    [CURL] => 3
    [Item1] => 唐
    [Nid] => 62326
    [xClass] => 超级王
    [Title] => 方式发送到
    [NURL] => 
    [CreateDate] => 2013-05-12 15:28:46
)

Array
(
    [id] => 3
    [DCName] => 玄
    [CURL] => 3
    [Item1] => 唐
    [Nid] => 62325
    [xClass] => 重天
    [Title] => fsfsd
    [NURL] => 
    [CreateDate] => 2013-05-12 15:27:28
)

Array
(
    [id] => 3
    [DCName] => 玄
    [CURL] => 3
    [Item1] => 唐少
    [Nid] => 62324
    [xClass] => 重天
    [Title] => dddddddd43432
    [NURL] => 
    [CreateDate] => 2013-05-12 15:26:54
)

最终过滤 当 键 xClass的值 重天出现过1次后,以后则忽略。
这个函数时?

select * from 表1 group by NNname order by Tid desc 

while($rsrow=$result->fetch_assoc()){

    $arr[]=$rsrow;
}

然后用 #10 代码

孩纸,这样子的问题你需要去查资料,这样等这别人直接写出来的结果对你没什么帮助~~~~

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn