请教大家。
我的需求是如果最新的一条新闻有图片的话,就把这条信息置顶,同时把图片也显示出来。
我想要的效果,就如上图所示。
同时,说明下,其中的信息2,信息3可能也是有图片的,而信息1可能是没图片的(不过现在信息1是有图片的)。
如果这时候信息1没有图,而信息2有图的话,那么就把信息2排在最顶端的位置,同时还要把图片也同时显示出来。
其中,图片对应的字段是name代码如下
{foreach name=newrs1 from=$newrs1 item=newrs1 name=newrs1}<!--分类-->
{if $smarty.foreach.newrs1.first && !empty($newrs1.name)}<!--如果是第一条,并且有图的话-->
<TR>
<TD width=3><IMG src="/shtj/images/dot1.jpg" width=3 height=8></TD>
<TD align="left"><img src="/shtj/photo/{$newrs1.name}" style="float:left;clear:left;" width="99" height="95">
<A href="/shtj/news/news.php?id={$newrs1.id}">{$newrs1.title|csubstr:0:18:'...'}</A> </TD></TR>
<TR>
{else}
<TR>
<TD width=3><IMG src="/shtj/images/dot1.jpg" width=3 height=8></TD>
<TD align="left"><A href="/shtj/news/news.php?id={$newrs1.id}">{$newrs1.title|csubstr:0:18:'...'}</A> </TD></TR>
<TR>
{/if}
{/foreach}
要如何做成我想要的那种显示效果呢?请教大家。谢谢!!!

解决方案 »

  1.   

    这个,我建议在php代码或者sql语句实现,不要放在smarty里
      

  2.   

      //大家不懂你数据库表的设计,所以没法具体啊,像你这样在smarty里做这个,不太好,
    建议在php代码或者sql语句实现
      

  3.   

    建议楼主用两条sql语句实现 一条sql语句 查询出最新的一条带图片的新闻 值为一数组
    第二条sql语句查询出其他的数据// 值为另一数组(用php 或在sql语句中处理下,把前面的那条新闻移走)然后把两个数组合并, 发送到smarty中 再在smarty中做处理
      

  4.   


    $dataarr=array();
    $data=mysql_query(".......");
    if($data){
    $tipimg=false;
    while($item=mysql_fetch_array($data)){
    if(!$tipimg){
    if($item['name']!=""){
    if(count($dataarr)){
    $item1=$item;
    $item=$dataarr[0];
    $dataarr[0]=$item1;
    }
    $dataarr[]=$item;
    $tipimg=true;
    }
    }else{
    $dataarr[]=$item;
    }
    }
    }
      

  5.   

    错了。$dataarr=array();
    $data=mysql_query(".......");
    if($data){
    $tipimg=false;
    while($item=mysql_fetch_array($data)){
    if(!$tipimg && $item['name']!=""){
    if(count($dataarr)){
    $item1=$item;
    $item=$dataarr[0];
    $dataarr[0]=$item1;
    }
    $tipimg=true;
    }
    $dataarr[]=$item;
    }
    }