欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

循环结果集不同性。

程序员文章站 2022-05-21 17:33:29
...
$sql="select * from a where id='$Id'";$result=$mysqli->query($sql);while($r=$result->fetch_assoc()){ echo $r.'
';//循环5次。}


得到的结果是

1:名字2
2:名字1
3:名字1
4:名字3
5:名字1

如果只求出现1次 名字1 在循环里,是怎么写的?


回复讨论(解决方案)

不知道你的数据是如何组织的!
一个 id 居然对应 5 条记录

再说 $r=$result->fetch_assoc() 得到的是数组
你 echo $r.'
'; 也不可能得到你说的结果

$sql="select * from a where id='$Id'";$result=$mysqli->query($sql);while($r=$result->fetch_assoc())$r=array_unique($r);print_r($r)

不知道你的数据是如何组织的!
一个 id 居然对应 5 条记录

再说 $r=$result->fetch_assoc() 得到的是数组
你 echo $r.'
'; 也不可能得到你说的结果

数据的结构是,
A表 名字 B表文章

根据B表的文章最新而最新,调用A表的名字,说是谁谁更新了文章。
如果1个人连续更新了N篇文章就重复了。

$sql="select * from a where id='$Id'";$result=$mysqli->query($sql);while($r=$result->fetch_assoc())$r=array_unique($r);print_r($r)


这也是种办法咯,不过我这是2个表同时查询的。如果用视图的话,这个办法挺好的。

查询加上 DISTINCT 属性

建议你贴出你的
create table....;
insert into table.... 语句

期望结果是怎么样的,并简单描述一下算法逻辑。

建议你贴出你的
create table....;
insert into table.... 语句

期望结果是怎么样的,并简单描述一下算法逻辑。

完整如下咯。麻烦看下。

$c="select a.id,a.Name,a.DCName,a.CURL,a.Item1,b.Nid, b.xClass,b.Title,b.NURL,b.CreateDate from  xclass a,news b  where  a.Name=b.xClass  ORDER  by Nid desc limit 0,15";$result=$mysqli->query($c);while($rsrow=$result->fetch_assoc()){    $xsURL='';    if($rsrow['CURL']==''){$xsURL=$rsrow['id'];}else{$xsURL=$rsrow['CURL'];}    $zjURL='';    if($rsrow['NURL']==''){$zjURL=$rsrow['Nid'];}else{$zjURL=$rsrow['NURL'];}    $chadaleiName=$rsrow['DCName'];    $chadalei="select * from dclass where Name='$chadaleiName'";    $cha=$mysqli->query($chadalei);    $chaRs=$cha->fetch_assoc();    $leibieUrl='';    if($chaRs['CName']==''){$leibieUrl=$chaRs['Id'];}else{$leibieUrl=$chaRs['CName'];}    $cha->free();    $shijian=$rsrow['CreateDate'];    $zj.='
  • ['.$chaRs['Name'].']'; $zj.=''.$rsrow['xClass'].''; $zj.=''.$rsrow['Title']; $zj.=''.$rsrow['Item1'].''.date('H:i:s',strtotime($shijian)).'
  • '; //$zj.= $xsURL.'--'.$rsrow['xClass'].'-'.$zjURL.'-'.$rsrow['Title'].'--
    ';}