Суммирование параметров на предмете.

This commit is contained in:
Igor Barkov (iwork) 2020-07-07 16:01:46 +03:00
parent 2d06792e24
commit 5b538838fd
2 changed files with 35 additions and 44 deletions

View File

@ -8,6 +8,7 @@
class DressedItems
{
protected $DB;
protected $DBSUM;
private $dressedItem;
/**
@ -15,36 +16,37 @@ class DressedItems
*/
public function __construct() {}
private function getDressedItems()
{
try {
$this->DB = db::c()->query('SELECT * FROM inventory WHERE owner_id = ?i AND dressed_slot > 0', $this->userid);
while ($row = $this->DB->fetch_assoc()) {
$dressed_item[$row['dressed_slot']] = $row;
$this->dressedItem[$row['dressed_slot']] = $row;
}
} catch (Exception $e) {
echo '<div class="debug">getDressedItems: ' . $e . '</div>';
}
}
public function getSlots()
{
return $this->dressedItem;
}
private function runQuery($user_id)
private function getDressedItems($user_id)
{
try {
$this->DB = db::c()->query('SELECT * FROM inventory WHERE owner_id = ?i AND dressed_slot > 0', $user_id);
} catch (Exception $e) {
echo '<div class="debug">getDressedItems: ' . $e . '</div>';
echo '<div class="debug">Не прогрузилась таблица inventory (*) для класса DressedItems.</div>';
}
}
public function eeee($user_id)
private function getBonusesFromDressedItems($user_id)
{
try {
$query = <<<SQL
SELECT SUM(add_strength) as sum_strength,
SUM(add_dexterity)as sum_dexterity,
SUM(add_intuition) as sum_intuition,
SUM(add_endurance) as sum_endurance,
SUM(add_intelligence) as sum_intelligence,
SUM(add_wisdom) as sum_wisdom
FROM inventory WHERE owner_id = ?i AND dressed_slot > 0'
SQL;
$this->DBSUM = db::c()->query($query, $user_id)->fetch_assoc();
} catch (Exception $e) {
echo '<div class="debug">Не прогрузилась таблица inventory (SUM) для класса DressedItems.</div>';
}
}
public function getItemsInSlots($user_id)
{
if (!$this->DB) {
$this->runQuery($user_id);
$this->getDressedItems($user_id);
}
while ($row = $this->DB->fetch_assoc()) {
$dressed_item[$row['dressed_slot']] = $row;
@ -52,4 +54,12 @@ class DressedItems
}
}
public function getBonusesAmount($user_id)
{
if (!$this->DBSUM) {
$this->getBonusesFromDressedItems($user_id);
}
return $this->DBSUM;
}
}

View File

@ -56,37 +56,18 @@ class User
private function UserInfoDoll($isBattle = 0, $isMain = 0)
{
//https://jsfiddle.net/ngx0yvhc
// $dressed_items = db::c()->query('SELECT * FROM inventory WHERE owner_id = ?i AND dressed_slot > 0', $this->id);
// while ($row = $dressed_items->fetch_assoc()) {
// $dressed_item[$row['dressed_slot']] = $row;
// }
$di = new DressedItems();
$di->eeee($this->id);
$dressedItems = $di->getItemsInSlots($this->id);
// for ($i = 1; $i <= 12; $i++) {
// echo sprintf('<div class="slot-%s">', $i);
// if (isset($dressed_item[$i])) {
// if (!$isBattle && $isMain) {
// $itemString = '<a href="?edit=1&drop=%s"><img src="/i/sh/%s" class="item-wrap-normal" alt="%s" title="%s"></a>';
// echo sprintf($itemString, $i, $dressed_item[$i]['image'], $dressed_item[$i]['name'], $dressed_item[$i]['name']);
// } else {
// $itemString = '<img src="/i/sh/%s" class="item-wrap-normal tip" alt="%s"><span class="tiptext"><strong>%s</strong></span>';
// echo sprintf($itemString, $dressed_item[$i]['image'], $dressed_item[$i]['name'], $dressed_item[$i]['name']);
// }
// } else {
// echo sprintf('<img src="/i/sh/noitem.png" class="item-wrap-normal" title="Пустой слот [%s]" alt="Пустой слот [%s]">', $i, $i);
// }
// echo sprintf('</div><!-- slot-%s -->', $i);
// }
for ($i = 1; $i <= 12; $i++) {
echo sprintf('<div class="slot-%s">', $i);
if (isset($di->eeee($this->id)[$i])) {
if (!$isBattle && $isMain) {
$itemString = '<a href="?edit=1&drop=%s"><img src="/i/sh/%s" class="item-wrap-normal" alt="%s" title="%s"></a>';
echo sprintf($itemString, $i, $di->eeee($this->id)[$i]['image'], $di->eeee($this->id)[$i]['name'], $di->eeee($this->id)[$i]['name']);
echo sprintf($itemString, $i, $dressedItems[$i]['image'], $dressedItems[$i]['name'], $dressedItems[$i]['name']);
} else {
$itemString = '<img src="/i/sh/%s" class="item-wrap-normal tip" alt="%s"><span class="tiptext"><strong>%s</strong></span>';
echo sprintf($itemString, $di->eeee($this->id)[$i]['image'], $di->eeee($this->id)[$i]['name'], $di->eeee($this->id)[$i]['name']);
echo sprintf($itemString, $dressedItems[$i]['image'], $dressedItems[$i]['name'], $dressedItems[$i]['name']);
}
} else {
echo sprintf('<img src="/i/sh/noitem.png" class="item-wrap-normal" title="Пустой слот [%s]" alt="Пустой слот [%s]">', $i, $i);