Exinaus писал(а):shw писал(а):т.е. в $result попадут только игроки, пришедшие в клан в указанный период.
Мне казалось там будут состоявшие в клане в данный период. Это разные вещи.
Ну тогда ок.
Проблема была в том что в
Ушедшие игроки отображалось -
vladar70
vladar70
vladar70
А при увеличении времени в $we_loosed = went_players($roster,(now() - 86400),now()); их становилось еще больше.
А
Новые игроки отображались только в течении часа после вступления в клан и потом не отображались. Увеличение времени в $new_players = new_players($roster,(now() - 86400),now()); ни к чему не приводило.
Сейчас все заработало, спасибо за помощь! Отрегулировал, приблизительно за 10 дней показывает ушедших и пришедших игроков без повторов.
Правили:
в main.php
Читать дальше
Код: Выделить всё$we_loosed = went_players($roster,(now() - 86400),now());
$new_players = new_players($roster,(now() - 86400),now());
изменил на
Читать дальше
Код: Выделить всё$we_loosed = went_players($roster,(now() - 1246060),now());
$new_players = new_players($roster,(now() - 1246060),now());
в func_time.php стандартный код изменили на
Читать дальше
Код: Выделить всё function went_players($roster,$start = 0,$end = -1){
global $db;
$losed = array();
$losed_name = array();
if($end == -1){
$end = now();
}
$sql = "SELECT name,account_id,role,member_since,up FROM col_players WHERE up <= '".$end."' AND up >= '".$start."' ORDER BY up DESC;";
$q = $db->prepare($sql);
if ($q->execute() == TRUE) {
$result = $q->fetchAll();
} else {
die(show_message($q->errorInfo(),__line__,__file__,$sql));
}
foreach($result as $val){
if((!isset($roster[$val['name']])) && !in_array($val['name'],$losed_name)) {
$losed[] = $val;
$losed_name[] = $val['name'];
}
}
return $losed;
}
и
Читать дальше
Код: Выделить всё function new_players($roster,$start = 0,$end = -1){
global $db;
$come = array();
if($end == -1){
$end = now();
}
$sql = "SELECT name,account_id,role,member_since FROM col_players WHERE member_since <= '".$end."' AND member_since >= '".$start."' ORDER BY member_since DESC;";
$q = $db->prepare($sql);
if ($q->execute() == TRUE) {
$result = $q->fetchAll();
} else {
die(show_message($q->errorInfo(),__line__,__file__,$sql));
}
foreach($result as $val){
$new_res[$val['name']] = $val;
}
if(isset($new_res)){
foreach($new_res as $name => $val){
if(isset($roster[$name])){
$come[] = $val;
}
}
}
return $come;
}
с учетом последнего изменения от
shw