PDA

View Full Version : 灵动标签操作数据库调用随机文章标题


La Verkin
2015-09-28, 11:02 PM
第一步要知道如何用mysql操作数据库调用随机文章标题, 这么实现:
SELECT id, title,titleurl FROM phome_ecms_news WHERE id >= ((SELECT MAX(id) FROM phome_ecms_news)-(SELECT MIN(id) FROM phome_ecms_news)) * RAND() + (SELECT MIN(id) FROM phome_ecms_news) ORDER BY id LIMIT 10

再将上边的语句整合到灵动标签:
[e:loop={'SELECT id, title,titleurl FROM [!db.pre!]ecms_news WHERE id >= ((SELECT MAX(id) FROM [!db.pre!]ecms_news)-(SELECT MIN(id) FROM [!db.pre!]ecms_news)) * RAND() + (SELECT MIN(id) FROM [!db.pre!]ecms_news) ORDER BY id LIMIT 10',10,24,0}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
[/e:loop]

La Verkin
2015-09-29, 12:23 AM
下边的效果更好:

SELECT * FROM [!db.pre!]ecms_news AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM [!db.pre!]ecms_news)-(SELECT MIN(id) FROM [!db.pre!]ecms_news))+(SELECT MIN(id) FROM [!db.pre!]ecms_news)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 10

整合到灵动标签中:

<ul>
[e:loop={'SELECT * FROM [!db.pre!]ecms_news AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM [!db.pre!]ecms_news)-(SELECT MIN(id) FROM [!db.pre!]ecms_news))+(SELECT MIN(id) FROM [!db.pre!]ecms_news)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 10 ',10,24,0}]
<li><a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a></li>
[/e:loop]
</ul>