551 | | // this is the sql for kills |
552 | | $sql = 'select count(*) AS kills,'; |
553 | | if (config::get('ship_values')) |
554 | | { |
555 | | $sql .= ' sum(ifnull(ksv.shp_value,scl.scl_value)) AS killisk FROM kb3_kills kll |
556 | | INNER JOIN kb3_ships shp ON ( shp.shp_id = kll.kll_ship_id ) |
557 | | left join kb3_ships_values ksv on (shp.shp_id = ksv.shp_id)'; |
558 | | } |
559 | | else |
560 | | { |
561 | | $sql .= ' sum(scl.scl_value) AS kisk FROM kb3_kills kll |
562 | | INNER JOIN kb3_ships shp ON ( shp.shp_id = kll.kll_ship_id )'; |
563 | | } |
564 | | $sql .= ' INNER JOIN kb3_ship_classes scl ON ( scl.scl_id = shp.shp_class ) |
565 | | inner join kb3_systems sys on ( sys.sys_id = kll.kll_system_id )'; |
566 | | if ($contract->klist_->inv_crp_) |
567 | | { |
568 | | $sql .= ' inner join kb3_inv_crp inc on ( inc.inc_crp_id in ( '.join(',', $contract->klist_->inv_crp_).' ) and kll.kll_id = inc.inc_kll_id ) '; |
569 | | } |
570 | | if ($contract->klist_->inv_all_) |
571 | | { |
572 | | $sql .= ' inner join kb3_inv_all ina on ( ina.ina_all_id in ( '.join(',', $contract->klist_->inv_all_).' ) and kll.kll_id = ina.ina_kll_id ) '; |
573 | | } |
574 | | if ($contract->klist_->inv_plt_) |
575 | | { |
576 | | $sql .= ' inner join kb3_inv_plt inp on ( inp.inp_plt_id in ( '.join(',', $contract->klist_->inv_plt_).' ) and kll.kll_id = inp.inp_kll_id ) '; |
577 | | } |
578 | | if ($contract->klist_->regions_) |
579 | | { |
580 | | $sql .= ' inner join kb3_constellations con |
581 | | on ( con.con_id = sys.sys_con_id ) |
582 | | inner join kb3_regions reg on ( reg.reg_id = con.con_reg_id |
583 | | and reg.reg_id in ( '.join(',', $contract->klist_->regions_).' ) )'; |
584 | | } |
585 | | if ($contract->klist_->systems_) |
586 | | { |
587 | | $sql .= ' and kll.kll_system_id in ( '.join(',', $contract->klist_->systems_).')'; |
588 | | } |
589 | | |
590 | | $sql .= ' where 1=1 '; |
591 | | if ($contract->klist_->vic_plt_) |
592 | | $sql .= " and kll.kll_victim_id in ( ".join(',', $contract->klist_->vic_plt_)." )"; |
593 | | if ($contract->klist_->vic_crp_) |
594 | | $sql .= " and kll.kll_crp_id in ( ".join(',', $contract->klist_->vic_crp_)." )"; |
595 | | if ($contract->klist_->vic_all_) |
596 | | $sql .= " and kll.kll_all_id in ( ".join(',', $contract->klist_->vic_all_)." )"; |
597 | | |
598 | | if ($contract->klist_->timeframe_) |
599 | | { |
600 | | $sql .= $contract->klist_->timeframe_; |
601 | | } |
602 | | |
603 | | $result = $qry->execute($sql); |
604 | | $kdata = $qry->getRow($result); |
605 | | |
606 | | // and here goes the losses |
607 | | $sql = 'select count(*) AS losses,'; |
608 | | if (config::get('ship_values')) |
609 | | { |
610 | | $sql .= ' sum(ifnull(ksv.shp_value,scl.scl_value)) AS lossisk FROM kb3_kills kll |
611 | | INNER JOIN kb3_ships shp ON ( shp.shp_id = kll.kll_ship_id ) |
612 | | left join kb3_ships_values ksv on (shp.shp_id = ksv.shp_id)'; |
613 | | } |
614 | | else |
615 | | { |
616 | | $sql .= ' sum(scl.scl_value) AS kisk FROM kb3_kills kll |
617 | | INNER JOIN kb3_ships shp ON ( shp.shp_id = kll.kll_ship_id )'; |
618 | | } |
619 | | $sql .= ' INNER JOIN kb3_ship_classes scl ON ( scl.scl_id = shp.shp_class ) |
620 | | inner join kb3_systems sys on ( sys.sys_id = kll.kll_system_id )'; |
621 | | if ($contract->llist_->inv_crp_) |
622 | | { |
623 | | $sql .= ' inner join kb3_inv_crp inc on ( inc.inc_crp_id in ( '.join(',', $contract->llist_->inv_crp_).' ) and kll.kll_id = inc.inc_kll_id ) '; |
624 | | } |
625 | | if ($contract->llist_->inv_all_) |
626 | | { |
627 | | $sql .= ' inner join kb3_inv_all ina on ( ina.ina_all_id in ( '.join(',', $contract->llist_->inv_all_).' ) and kll.kll_id = ina.ina_kll_id ) '; |
628 | | } |
629 | | if ($contract->llist_->inv_plt_) |
630 | | { |
631 | | $sql .= ' inner join kb3_inv_plt inp on ( inp.inp_plt_id in ( '.join(',', $contract->llist_->inv_plt_).' ) and kll.kll_id = inp.inp_kll_id ) '; |
632 | | } |
633 | | if ($contract->llist_->regions_) |
634 | | { |
635 | | $sql .= ' inner join kb3_constellations con |
636 | | on ( con.con_id = sys.sys_con_id ) |
637 | | inner join kb3_regions reg on ( reg.reg_id = con.con_reg_id |
638 | | and reg.reg_id in ( '.join(',', $contract->llist_->regions_).' ) )'; |
639 | | } |
640 | | if ($contract->llist_->systems_) |
641 | | { |
642 | | $sql .= ' and kll.kll_system_id in ( '.join(',', $contract->llist_->systems_).')'; |
643 | | } |
644 | | |
645 | | $sql .= ' where 1=1 '; |
646 | | if ($contract->llist_->vic_plt_) |
647 | | $sql .= " and kll.kll_victim_id in ( ".join(',', $contract->llist_->vic_plt_)." )"; |
648 | | if ($contract->llist_->vic_crp_) |
649 | | $sql .= " and kll.kll_crp_id in ( ".join(',', $contract->llist_->vic_crp_)." )"; |
650 | | if ($contract->llist_->vic_all_) |
651 | | $sql .= " and kll.kll_all_id in ( ".join(',', $contract->llist_->vic_all_)." )"; |
652 | | |
653 | | if ($contract->llist_->timeframe_) |
654 | | { |
655 | | $sql .= $contract->llist_->timeframe_; |
656 | | } |
657 | | |
658 | | $result = $qry->execute($sql); |
659 | | $ldata = $qry->getRow($result); |
660 | | |
| 551 | |
| 552 | for ($i = 0; $i < 2; $i++) |
| 553 | { |
| 554 | if ($i == 0) |
| 555 | { |
| 556 | $list = &$contract->llist_; |
| 557 | } |
| 558 | else |
| 559 | { |
| 560 | $list = &$contract->klist_; |
| 561 | } |
| 562 | |
| 563 | // take care of the subquery needed (mysql > 4.1) |
| 564 | if (KB_MYSQL41) |
| 565 | { |
| 566 | $sql = 'select count(kll_id) AS ships, sum(lossisk) as isk from (select distinct kll_id,'; |
| 567 | } |
| 568 | else |
| 569 | { |
| 570 | $sql = 'select distinct kll_id,'; |
| 571 | } |
| 572 | |
| 573 | |
| 574 | if (config::get('ship_values')) |
| 575 | { |
| 576 | $sql .= ' ifnull(ksv.shp_value,scl.scl_value) AS lossisk FROM kb3_kills kll |
| 577 | INNER JOIN kb3_ships shp ON ( shp.shp_id = kll.kll_ship_id ) |
| 578 | left join kb3_ships_values ksv on (shp.shp_id = ksv.shp_id)'; |
| 579 | } |
| 580 | else |
| 581 | { |
| 582 | $sql .= ' scl.scl_value AS lossisk FROM kb3_kills kll |
| 583 | INNER JOIN kb3_ships shp ON ( shp.shp_id = kll.kll_ship_id )'; |
| 584 | } |
| 585 | $sql .= ' INNER JOIN kb3_ship_classes scl ON ( scl.scl_id = shp.shp_class ) |
| 586 | inner join kb3_systems sys on ( sys.sys_id = kll.kll_system_id )'; |
| 587 | |
| 588 | if ($list->regions_) |
| 589 | { |
| 590 | $sql .= ' inner join kb3_constellations con |
| 591 | on ( con.con_id = sys.sys_con_id ) |
| 592 | inner join kb3_regions reg on ( reg.reg_id = con.con_reg_id |
| 593 | and reg.reg_id in ( '.join(',', $list->regions_).' ) )'; |
| 594 | } |
| 595 | if ($list->systems_) |
| 596 | { |
| 597 | $sql .= ' and kll.kll_system_id in ( '.join(',', $list->systems_).')'; |
| 598 | } |
| 599 | if ($list->inv_crp_) |
| 600 | { |
| 601 | $sql .= ' inner join kb3_inv_crp inc on ( kll.kll_id = inc.inc_kll_id ) '; |
| 602 | } |
| 603 | if ($list->inv_all_) |
| 604 | { |
| 605 | $sql .= ' inner join kb3_inv_all ina on ( kll.kll_id = ina.ina_kll_id ) '; |
| 606 | } |
| 607 | if ($list->inv_plt_) |
| 608 | { |
| 609 | $sql .= ' inner join kb3_inv_plt inp on ( kll.kll_id = inp.inp_kll_id ) '; |
| 610 | } |
| 611 | |
| 612 | $sql .= ' where 1=1 '; |
| 613 | |
| 614 | $tmp = array(); |
| 615 | if ($list->vic_plt_) |
| 616 | { |
| 617 | $tmp[] = 'kll.kll_victim_id in ( '.join(',', $list->vic_plt_).' )'; |
| 618 | } |
| 619 | if ($list->vic_crp_) |
| 620 | { |
| 621 | $tmp[] = 'kll.kll_crp_id in ( '.join(',', $list->vic_crp_).' )'; |
| 622 | } |
| 623 | if ($list->vic_all_) |
| 624 | { |
| 625 | $tmp[] = 'kll.kll_all_id in ( '.join(',', $list->vic_all_).' )'; |
| 626 | } |
| 627 | if (count($tmp)) |
| 628 | { |
| 629 | $sql .= ' and ('; |
| 630 | $sql .= join(' or ', $tmp); |
| 631 | $sql .= ')'; |
| 632 | } |
| 633 | |
| 634 | |
| 635 | $tmp = array(); |
| 636 | if ($list->inv_crp_) |
| 637 | { |
| 638 | $tmp[] = 'inc.inc_crp_id in ( '.join(',', $list->inv_crp_).')'; |
| 639 | } |
| 640 | if ($list->inv_all_) |
| 641 | { |
| 642 | $tmp[] = 'ina.ina_all_id in ( '.join(',', $list->inv_all_).')'; |
| 643 | } |
| 644 | if ($list->inv_plt_) |
| 645 | { |
| 646 | $tmp[] = 'inp.inp_plt_id in ( '.join(',', $list->inv_plt_).')'; |
| 647 | } |
| 648 | if (count($tmp)) |
| 649 | { |
| 650 | $sql .= ' and ('; |
| 651 | $sql .= join(' or ', $tmp); |
| 652 | $sql .= ')'; |
| 653 | } |
| 654 | |
| 655 | if ($list->timeframe_) |
| 656 | { |
| 657 | $sql .= $list->timeframe_; |
| 658 | } |
| 659 | if (KB_MYSQL41) |
| 660 | { |
| 661 | // this is the last part from the outer query |
| 662 | $sql .= ') as kb3_shadow'; |
| 663 | } |
| 664 | |
| 665 | $result = $qry->execute($sql); |
| 666 | if (KB_MYSQL41) |
| 667 | { |
| 668 | $row = $qry->getRow($result); |
| 669 | } |
| 670 | else |
| 671 | { |
| 672 | $sum = array(); |
| 673 | $sum['isk'] = 0; |
| 674 | $sum['ships'] = 0; |
| 675 | while ($row = $qry->getRow($result)) |
| 676 | { |
| 677 | $sum['ships'] += 1; |
| 678 | $sum['isk'] += $row['lossisk']; |
| 679 | } |
| 680 | $row = $sum; |
| 681 | } |
| 682 | |
| 683 | if ($i == 0) |
| 684 | { |
| 685 | $ldata = array('losses' => $row['ships'], 'lossisk' => $row['isk']); |
| 686 | } |
| 687 | else |
| 688 | { |
| 689 | $kdata = array('kills' => $row['ships'], 'killisk' => $row['isk']); |
| 690 | } |
| 691 | } |