实现随机标题

瞎弄一上午,最终把本来用js实现随机标题变成数据库读取随机标题。

我这里读的数据是平时的一句话Twitter
,相对于之前从js文件随机读取,现在明显就比较灵活和方便,只是添加了点服务器的压力。

下面是之前js随机标题的示例代码:

<script>
 //指定条目数
 tips = new Array(2);
 //条目内容
 tips[0] =
'All things are difficult before they are easy.'
;
 tips[1] =
'人类最大的错误,在于不敢承担圣人的心。'
;
 tips[2] =
'妇女能顶半边天。'
;
  index = Math.floor(Math.random() * tips.length);
 window.document.title += " - "+tips[index];
</script>  

其中tips数组可以自己扩展,相对的更改Array(*)就ok!

因为觉得如果一旦这些tips多了,上千条上万条,那这样子js文件相对也大起来了,还不如从数据库读取。

 

 下面是从数据库随机读取的关键代码:

 

 /**随机标题**/
 function titletip()
{

      $count
=$this->db->fetch_row($this->db->query

(
"SELECT
count(*) FROM emlog_twitter

"

));//统计记录数
      $rad
=mt_rand(1,$count[0]);

//随机一个$rad
      $result
=$this->db->query
("SELECT * FROM emlog_twitter where id=".
$rad
);
      $row
= $this->db->fetch_array($result
);

      $tip
=$row['content'];
      return $tip

 }

//$this->db是我new 的一个
new MySql(DB_HOST, DB_USER, DB_PASSWD,DB_NAME);

这样只要在view里调用titletip()方法就可以得到随机的一条标题了!

$blogtitle = $blogtitle.' - '.$titletip;

这样子就能实现我们所要的功能了,平时唠叨的一句话Twitter就可能随机成为标题,

但就是有一个问题,如果删除某条Twitter后,它的这个ID是占着的,如果凑巧随机到这个ID,那么显示的内容就是空了,所以还要在数据库处理,是删除后的ID内容不为空。

 

12
月1号更新
:在网上看到SELECT * FROM emlog_twitter order by rand() limit 1

因此可以把之前的

 function titletip()
{

      $count
=$this->db->fetch_row($this->db->query

(
"SELECT
count(*) FROM emlog_twitter

"

));//统计记录数
      $rad
=mt_rand(1,$count[0]);

//随机一个$rad
      $result
=$this->db->query
("SELECT * FROM emlog_twitter where id=".
$rad
);
      $row
= $this->db->fetch_array($result
);

      $tip
=$row['content'];
      return $tip

 }

改为

 function titletip()
{

     $result
=$this->db->query
("
SELECT * FROM emlog_twitter order by rand() limit 1

);
      $row
= $this->db->fetch_array($result
);

      $tip
=$row['content'];
      return $tip

 }

经测试可行,节省一条数据库查询

标签: php, 数据库, rad, row, tips