Files
rank24.pl/autoload/factory/class.Statistics.php
2024-12-12 15:33:18 +01:00

57 lines
2.3 KiB
PHP

<?php
namespace factory;
class Statistics
{
public static function phrases_diffs()
{
global $mdb, $user;
if ( $user['type'] != 'admin' )
return false;
if ( !$out = \FileCache::fetch( "phrases-diffs" ) )
{
$results = $mdb -> query( 'SELECT '
. 'prp.id, phrase, name, '
. '( SELECT position FROM phrase_positions_statistic WHERE phrase_id = prp.id ORDER BY date DESC LIMIT 1 ) AS today, '
. '( SELECT position FROM phrase_positions_statistic WHERE phrase_id = prp.id ORDER BY date DESC LIMIT 1 OFFSET 1 ) AS yesterday '
. 'FROM '
. 'pro_rr_phrases AS prp '
. 'INNER JOIN pro_rr_sites AS prs ON prp.site_id = prs.id '
. 'WHERE '
. '( prp.date_end >= \'' . date( 'Y-m-d' ) . '\' OR prp.date_end IS NULL ) '
. 'AND '
. '( prs.date_start <= \'' . date( 'Y-m-d' ) . '\' OR prs.date_start IS NULL ) '
. 'AND '
. '( prp.date_start <= \'' . date( 'Y-m-d' ) . '\' OR prp.date_start IS NULL ) '
. 'AND '
. '( prs.date_end >= \'' . date( 'Y-m-d' ) . '\' OR prs.date_end IS NULL ) '
. 'ORDER BY '
. 'prp.id ASC' ) -> fetchAll();
if ( is_array( $results ) and !empty( $results ) ) foreach ( $results as $row )
{
$diff = 0;
if ( $row['today'] == 0 and $row['yesterday'] != 0 )
$diff = $row['yesterday'] - 200;
else if ( $row['today'] != 0 and $row['yesterday'] == 0 )
$diff = 200 - $row['today'];
else
$diff = $row['yesterday'] - $row['today'];
$out[ $row['id'] ]['domain'] = $row['name'];
$out[ $row['id'] ]['phrase'] = $row['phrase'];
$out[ $row['id'] ]['diff'] = $diff;
$out[ $row['id'] ]['today'] = $row['today'];
}
\FileCache::store( "phrases-diffs", $out, 'n' );
}
return $out;
}
}
?>