<?php class Campaigns { private $database; const FIELDS_gebuchte_werbung = '`t1`.`id`, `t1`.`uid`, `t1`.`tan`, `t1`.`kid`, `t1`.`ziel`, `t1`.`banner`, `t1`.`verdienst`, `t1`.`preis`, `t1`.`aufendhalt`, `t1`.`menge`, `t1`.`reload`, `t1`.`sponsor`, `t1`.`werbeart`, `t1`.`status`'; public function __construct( $database ) { $this->database = $database; } public function decreaseAvailCountById( $id, $value = 1 ) { $sql = 'UPDATE `'. DB_PREFIX . '_gebuchte_werbung` SET `menge` = `menge` - :value WHERE `id`= :id'; $sql_params = array( ':id' => $id, ':value' => $value ); return $this->database->sqlUpdate($sql, $sql_params); } public function getIsClickableByTanAndType( $tan, $type, $ip, $uid, $zeit ) { $sql = self::FIELDS_gebuchte_werbung .' FROM `'. DB_PREFIX .'_gebuchte_werbung` AS `t1` LEFT JOIN `'. DB_PREFIX .'_reloads` AS `t2` ON ( `t1`.`tan` = `t2`.`tan` AND (`t2`.`uid` = :t2uid OR `t2`.`ip` = :t2ip ) AND `t2`.`bis` > :t2bis ) WHERE `t1`.`tan` = :t1tan AND `t2`.`tan` IS NULL AND `t1`.`werbeart` = :t1type AND `t1`.`menge` >= 1 AND `t1`.`status` = 1 AND `t1`.`sponsor` != :t1uid LIMIT 1'; $sql_params = array( ':t2uid' => $uid, ':t2ip' => $ip, ':t2bis' => $zeit, ':t1tan' => $tan, ':t1type' => $type, ':t1uid' => $uid, ); $result = $this->database->select( $sql, $sql_params ); return ( isset($result[0]) ) ? $result[0] : false; } public function getByTanAndType( $tan, $type, $status = false ) { $where_status = ( false !== $status ) ? ' AND `status` = :status ' : ''; $sql = self::FIELDS_gebuchte_werbung .' FROM `'.DB_PREFIX.'_gebuchte_werbung` AS `t1` WHERE `tan` = :tan AND `werbeart` = :type '.$where_status.' LIMIT 1'; $sql_params = array( ':tan' => $tan, ':type' => $type, ); if( false !== $status ) { $sql_params[':status'] = $status; } $result = $this->database->select($sql, $sql_params); return ( isset($result[0]) ) ? $result[0] : false; } }