想要的查询结果:传入手机号和类型,把Y-m-d H:i:s文本格式的时间字段转换成Y-m-d的格式,并分组+统计个数
public function getSmsByTelephone($sms_mobile,$type) { $query = $this->db->query("SELECT DATE_FORMAT(`add_date`, '%Y-%m-%d') num,count(*) FROM " . DB_PREFIX . "sms_mobile WHERE sms_mobile = '" . $sms_mobile ."' AND type = '" . $type . "' group by num"); return $query->row; }
这是在phpadmin里的查询结果
这是程序里获取的方法,然后打印
这是页面的打印结果
疑问:底层sql语句都是用$this->db->query去查询,不会在底层对sql语句加限制,要限制,就自己在sql里加limit去限制条数。
我的sql也没有限制limit,不知道为什么只出来一条
建议获取最后一条sql语句来查看这条语句有什么问题:
$this->db->getLastSql($this->name);
从你返回的结果看,可以肯定的是对结果做了只取当前一行的处理,不是limit的问题,要不然的话,返回结果是这样的
array(1){ [0]=>array(2){ "num" => string(10)"xxxx", "count" => string(1)"2" } }
基本上就是row()的问题了,你可以把这个方法的代码贴出来
@始终一个人 个人推测你用的是CI的框架。
ci 框架里面写法和这个很相似。刚才很多人都说了,row 的解释:
如果想要获取完全的结果请使用-$query->result()
来获取结果。
@始终一个人 如果是用的CI请看下http://codeigniter.org.cn/use... 这个地址里面有解释!
总结下:遇到这样的问题可以先看下手册,技术就是在不断的解决问题中成长的,多交流!
呵呵哒,你找到重写的那个地方,看看写成啥了,确定是不是返回一行,再来问吧。。
谢邀。
看到您是直接输出的Row
。我估计您用的是什么框架,Row
本身就是一行的意思
row n. 行,排;划船;街道;吵闹
楼主看这里 POD 手册 ,然后框架中底层它封装的极有可能就是PDO 的Fetach
PDOStatement::fetch ,再看看您的手册吧,方法调用错啦
看起来就像是你只返回了一行的结果,你再检查一下你返回结果的代码。
return $query->row;
这不是返回一条数据的意思吗?