uchome投票功能的原理分析

2011-11-03 23:38 来源:www.chinab4c.com 作者:uchome专家

    uchome投票功能,是uchome里面一个很重要的功能。uchome的投票功能,他分主题和投票选项。uchome在录入主题的时候。是存储在uchome数据库表uchome_poll里面的。而他的选项是存储在uchome_polloption表里面的。

    当我们录入uchome的投票功能的时候。首先是将uchome的主题录入,包括有效期,选项和规则以及介绍。然后选项通过循环存储到了数据库中。分开存储。

    在我们浏览uchome的投票主题的时候。我们通过pid,能获取到uchome投票主题以及对应该投票主题的选项。就是通过以下来获取的。

   $query = $_SGLOBAL['db']->query("SELECT pf.*, p.* FROM ".tname('poll')." p LEFT JOIN ".tname('pollfield')." pf ON pf.pid=p.pid WHERE p.pid='$pid'");
 $poll = $_SGLOBAL['db']->fetch_array($query);
 if(empty($poll)) {
  showmessage('view_to_info_did_not_exist');
 }

  这里有很多规则,比如该uchome投票主题是限制了性别,或者积分。那么都有严格控制。

  if($poll['credit'] && $poll['percredit'] && $poll['credit'] < $poll['percredit']) {
  $poll['percredit'] = $poll['credit'];
 }
 realname_set($poll['uid'], $poll['username']);//实名
 //限制投票
 $allowedvote = true;
 
 if(!empty($poll['sex']) && $poll['sex'] != $_SGLOBAL['member']['sex']) {
  $allowedvote = false;
 }

 如果该投票过期,也是投票不了的。

   if($poll['expiration'] && $poll['expiration'] < $_SGLOBAL['timestamp']) {
   }

   uchome的投票会员信息是存储在uchome数据库表uchome_polluser中的。该表中会记录投票时间和投票所头的项目。