예제 #1
0
function update_cat_stats()
{
    //$manager = CategoryStats::newInstance();
    $conn = getConnection();
    $sql_cats = "SELECT pk_i_id FROM " . DB_TABLE_PREFIX . "t_category";
    $cats = $conn->osc_dbFetchResults($sql_cats);
    foreach ($cats as $c) {
        $date = date('Y-m-d H:i:s', mktime(0, 0, 0, date("m") - 1, date("d"), date("Y")));
        $sql = sprintf("SELECT COUNT(pk_i_id) as total, fk_i_category_id as category FROM `%st_item` WHERE `dt_pub_date` > '%s' AND fk_i_category_id = %d GROUP BY fk_i_category_id", DB_TABLE_PREFIX, $date, $c['pk_i_id']);
        $total = $conn->osc_dbFetchResult($sql);
        $total = $total['total'];
        /*$manager->update(
          array(
              'i_num_items' => $total
              ), array('fk_i_category_id' => $c['pk_i_id'])
          );*/
        $conn->osc_dbExec("INSERT INTO %st_category_stats (fk_i_category_id, i_num_items) VALUES (%d, %d) ON DUPLICATE KEY UPDATE i_num_items = %d", DB_TABLE_PREFIX, $c['pk_i_id'], $total, $total);
    }
    $categories = Category::newInstance()->findRootCategories();
    foreach ($categories as $c) {
        /*$manager->update(
        			array(
        				'i_num_items' => count_items_subcategories($c)
        			), array('fk_i_category_id' => $c['pk_i_id'])
        		);*/
        $total = count_items_subcategories($c);
        //$conn->osc_dbExec("INSERT INTO %st_category_stats (fk_i_category_id, i_num_items) VALUES (%d, %d) ON DUPLICATE KEY UPDATE i_num_items = %d", DB_TABLE_PREFIX, $c['pk_i_id'], $total, $total);
    }
}
예제 #2
0
function update_cat_stats()
{
    $conn = getConnection();
    $sql_cats = "SELECT pk_i_id, i_expiration_days FROM " . DB_TABLE_PREFIX . "t_category";
    $cats = $conn->osc_dbFetchResults($sql_cats);
    foreach ($cats as $c) {
        if ($c['i_expiration_days'] == 0) {
            $sql = sprintf("SELECT COUNT(pk_i_id) as total, fk_i_category_id as category FROM `%st_item` WHERE fk_i_category_id = %d AND b_enabled = 1 AND b_active = 1 GROUP BY fk_i_category_id", DB_TABLE_PREFIX, $c['pk_i_id']);
        } else {
            $sql = sprintf("SELECT COUNT(pk_i_id) as total, fk_i_category_id as category FROM `%st_item` WHERE fk_i_category_id = %d AND b_enabled = 1 AND b_active = 1 AND (b_premium = 1 || TIMESTAMPDIFF(DAY,dt_pub_date,'%s') < %d) GROUP BY fk_i_category_id", DB_TABLE_PREFIX, $c['pk_i_id'], date('Y-m-d H:i:s'), $c['i_expiration_days']);
        }
        $total = $conn->osc_dbFetchResult($sql);
        $total = $total['total'];
        $conn->osc_dbExec("INSERT INTO %st_category_stats (fk_i_category_id, i_num_items) VALUES (%d, %d) ON DUPLICATE KEY UPDATE i_num_items = %d", DB_TABLE_PREFIX, $c['pk_i_id'], $total, $total);
    }
    $categories = Category::newInstance()->findRootCategories();
    foreach ($categories as $c) {
        $total = count_items_subcategories($c);
    }
}