今天在問答版塊看到一位易友的提問,

首先很快想到可以用sql語句rand函數來解決,于是貼上了代碼:

但是經過提問者測試確實是隨機的,然而卻是固定的三條文章,刷新不會變化

經過本地測試,的確是sql語句只執行了一次,于是便想辦法解決。這時候想到了利用隨機數函數,每次刷新產生不同的隨機數傳送到sql語句里,這樣就可以實現每次刷新都執行sql語句。
改進了需要引入隨機數保證每次刷新重新執行sql
{eyou:assign name="keywords" value="$eyou.field.keywords"}
{eyou:sql sql="select COUNT(*) as total from ey_archives"}
{eyou:assign name="rand" value=":rand(0$field.total)"}
{/eyou:sql}
{eyou:sql sql="select aid from ey_archives where title like '%$keywords%' order by rand() limit $rand,3"}
{eyou:arcview aid="$field.aid" id="field2"}
<a href="{$field2.arcurl}">{$field2.title}</a>
{/eyou:arcview}
{/eyou:sql}
注意中文逗號改為英文