我找到了一张名为#__products_visits的表来记录访问次数。其结构是:
id
product_id
product_name
date
计数器脚本在访问时插入记录。因此,每行代表数据库的单次访问。现在,我想计算白天的访问次数,并按天获取访问次数。这是一个Joomla!组件,所以查询最好是在Joomla!类。
限制位的WHERE条件切换器:
$date_range = $_REQUEST['date'];
switch($date_range) {
case 1:
$scope = ' >= DATE_SUB(CURDATE(), INTERVAL 1 DAY)';
break;
case 2:
$scope = ' >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)';
break;
case 3:
$scope = ' >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)';
break;
case 4:
$scope = ' >= DATE_SUB(CURDATE(), INTERVAL 365 DAY)';
break;
case 5:
$scope = ' <= CURDATE()';
break;
default:
$scope = ' >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)';
break;
}
到目前为止我选择的函数:
// Count cart rows
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select('*')
->from($db->quoteName('#__product_visits'))
->where($db->quoteName('date') . $scope);
$db->setQuery($query);
$results = $db->loadObjectList();
// And here is where I've been stopped :-)
答案 0 :(得分:1)
如果你的日期是&#39;是一个真正的日期类型变量,这是有效的 - 不知道你对INTERVALS做了什么
SELECT date_format(`date`,'%Y-%m-%d') as DateVisited, count(*) from #__products_visits group by DateVisited
答案 1 :(得分:0)
用户3741598的帮助我认为的方式是:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select('date_format(`date`,"%Y,%m,%d") as DateVisited, COUNT(*) as row')
->from($db->quoteName('#__product_visits'))
->where($db->quoteName('date') . $scope)
->group($db->quoteName('DateVisited'));
$db->setQuery($query);
$results = $db->loadObjectList();
然后我用foreach
从
$x = $result->DateVisited;
以及每个群组的访问次数:
$y = $result->row;