我的理解:首先点击获取当前ID,model层查询所有sort字段,遍历数据,得到最大值,修改数据,替换数据,即可。

效果图:

文章列表置顶

模型层:

 //显示列表
    public function lists1()
    {
        $arr=Yii::$app->db->createCommand("select * from acticle join type on type.t_id=acticle.t_id order by sort desc")->queryall();
        return $arr;
    }
    //置顶
    public function top(){
        $arr=$this::find()->select("sort")->asArray()->all();
       //print_r($arr);die;
        $rows=array();
        foreach($arr as $key=>$v)
        {
           $rows[]=$v['sort'];
        }
        $max=array_search(max($rows),$rows);
        return intval($rows[$max]+1);
    }
    //修改数据
    public function update1($sort,$acticle_id){
        $arr=Yii::$app->db->createCommand()->update("acticle",['sort'=>$sort],['acticle_id'=>$acticle_id]);
        if($arr->execute()){
            return 1;
        }else{
            return 2;
        }
    }

控制器:

 //文章置顶
    public function actionTopq(){
       $acticle_id=$_GET['id'];
       //echo $acticle_id;die;
       //获取最大sort
       $model=new Acticle();
       $sort=$model->top();
       //修改数据
       $row=$model->update1($sort,$acticle_id);
       //echo  $row;die;
       if($row==1){
           //替换数据,置顶
           $res1=$model->lists1();
           $art=new Articles();
           $res6=$art->get_right($res1,5);
           return $res6;
       }else{
        return false;
       }
    }
视图层:

<!-- 文章列表 -->
<div class="r_230_b ma_b8" style="float:right;right:0;line">
<div class="news_t" ><h2><font color="#d52c99">最新动态</font></h2></div>
<?php echo $res6;?>
</div>
<script>
function topq(ts){
    $.get("index.php?r=index/topq",{id:ts},function(msg){
        $('#sort').html(msg);
        //alert(msg);
    })
}
</script>

(注意:此页面需结合上章一起使用!!!)

相关文章: