dongyong5255 2014-05-28 08:40
浏览 9
已采纳

SQL查询结果为字符串

I'm using SQL in Yii framework. I need to show the person's latest active week (it's number and date).So I wrote following code:

public function latestWeek() 
{           
    $datalogin=//the login is working fine
    $sql ="SELECT w.number,MAX(w.start_date)
    FROM tbl_person_week t, tbl_week w
    WHERE t.person_id=$this->id AND t.week_id=w.id"; 

    $query = mysqli_query($datalogin, $sql);
    return $query;
}

Now , I checked this query on the server and it works fine (almost) but first thing: I need to convert it into string , because yii's CgridView can't read it , and I couldn't find a working solution for this.

Second: on the server , it gave me the max date indeed , but not it's correct number , but the first number available. How can I fix this as well?

  • 写回答

3条回答 默认 最新

  • dqvy87517 2014-05-28 10:10
    关注

    Queries like that should never be used in objective framework. If yu want to execute your own query, you should do it this way:

    $sql = "your sql code";
    $array = Yii::app()->db->createCommand($sql)->queryAll();
    

    As result you will get multidimensional array with selected columns and rows

    If you want to use it in grid view, you should do it this way:

    $count = Yii::app()->db->createCommand($sql)->queryScalar();
    
    $dataProvider = new CSqlDataProvider($sql, array('totalItemCount'=>$count));
    
    $this->widget('zii.widgets.grid.CGridView', array(
        'id'=>'grid-id',
         'dataProvider'=> $dataProvider,
    ));
    

    You can also use connection other than Yii::app()->db. Check CDbConnection class in docs.

    edit: if you wanna use queries like mysql_fetch_assoc, check out also queryRow() method instead of queryAll()

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 seata使用出现报错,其他服务找不到seata
  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取
  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误