Home >Backend Development >PHP Tutorial >循环1个结果集,

循环1个结果集,

WBOY
WBOYOriginal
2016-06-23 14:09:43966browse

表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 代码

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn