本人用ThinkPHP3.2,今天正在開發(fā)一個需要分組顯示的功能,可是從數(shù)據(jù)庫中把相應數(shù)據(jù)讀取后直接用group分組,結果每組顯示的是最老的記錄,我的需求是要顯示每組的最新記錄。在網(wǎng)上大搜一翻后,未果,本人決定自行研究,現(xiàn)將方法記錄于此以防遺忘。
在??h等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站設計、網(wǎng)站制作 網(wǎng)站設計制作按需開發(fā),公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站設計,成都全網(wǎng)營銷推廣,外貿營銷網(wǎng)站建設,??h網(wǎng)站建設費用合理。
其實很簡單,以供就兩步:
第一步:
將符合條件的數(shù)據(jù)全部取出,暫不用group分組,作為子查詢:
[php]?view plain?copy
$subQuery?=?$model-field('id,name')-table('tablename')-where($where)-order('time?desc')-select(false);
第二部:
利用子查詢進行查詢分組
[php]?view plain?copy
$model-table($subQuery.'?a')-group('field')-select();span?style="font-family:?Arial,?Helvetica,?sans-serif;"?/span
好了,思路就是這樣。希望對大家有幫助!
一般的表都有一個遞增的id字段吧。。。
最后提交的10條數(shù)據(jù),即為前10個最大id的記錄
可以先對id從大到小排序后后取最前面10條即可
$sql="select * from table order by id desc limit 10";
$result=mysql_query($sql);
order by id desc 表示按id字段逆序排列
limit 10 表示最大取10條記錄
試編寫代碼示例如下:
?php
//連接數(shù)據(jù)庫
$db?=?new?mysqli('localhost','test','test','test');
if?($db-connect_errno)?{
printf("連接數(shù)據(jù)庫失敗:?%s\n",?$db-connect_error);
exit();
}
//對數(shù)據(jù)庫根據(jù)時間字段按降序排序,并抽取前面的40條記錄
$data?=?$db-query('select?*?from?數(shù)據(jù)表名?order?by?時間字段名?desc?limit?40');
$rows?=?$data-fetch_all(MYSQLI_ASSOC);
//隨機生成?5?條記錄數(shù)組
$rand_arr?=?array_rand($rows,?5);
//根據(jù)生成的隨機數(shù)組,輸出記錄
for($i=0;$i5;$i++)
{
echo?$rows[$rand_arr[$i]]['name'].'?|?'.$rows[$rand_arr[$i]]['description'].'?|?'.$rows[$rand_arr[$i]]['update_time'].'br/';
}
?
示例運行截圖:
利用自增字段,把要查詢的數(shù)據(jù)表的id設置為自增。查詢數(shù)據(jù)時,order by id desc,取第一條就是最新的。
利用時間,要查詢的數(shù)據(jù)表中增加時間字段,查詢時,order by time desc,取第一條就是最新的。
有很多方法的呀,
1)字符串截取,$result
=
substr($whole,
0,
4);
2)用空格分割字符串到數(shù)組中:$ary
=
explode('
',
$whole);
$result
=
$ary[0]
$sql="select * from mytb order by time desc limit 5"
不足5條,沒關系。
凡事多嘗試。
網(wǎng)站欄目:php取最新數(shù)據(jù),php獲取mysql數(shù)據(jù)
新聞來源:http://chinadenli.net/article14/hegdde.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、App開發(fā)、做網(wǎng)站、營銷型網(wǎng)站建設、品牌網(wǎng)站建設、微信公眾號
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)