Переписать запрос функции

FromInc

Заблокирован
Заблокирован
Сообщения
36
Розыгрыши
0
Репутация
-73
Реакции
7
Баллы
0
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Имеется запрос на добавление итема для таблицы items

Что делает функция:

Добавляет итем суммой 40 р в таблицу items и возвращает сумму 40 на счет в accounts столбик money

Код:
function add_item($count,$id,$char,$comment)
{
              
              $conn = db_connect();
                $result = $conn->query("SELECT online,obj_Id FROM `characters` WHERE char_name='$char'");   
                 if (!$result) throw new Exception('Проблема соединения с базой данных. Попробуйте позже.');
                $info = $result->fetch_assoc();
                $charId=$info['obj_Id'];               
                
                if ( $info['online'] !=0 ) throw new Exception('Персонаж должен находиться вне игры!');
                $result = $conn->query("SELECT * FROM  items  WHERE item_id = '$id' and owner_id = '$charId' LIMIT 1");                   
                $info = $result->fetch_assoc();
  
                if ($info['object_id'])
                            {
                              
                            $count=$info['count']+$count;
                            $objectId=$info['object_id'];
                            $result = $conn->query(" UPDATE   items  SET count = '$count' WHERE  object_id = '$objectId'");
                            
                            }
                    else
                        {
                          
                        $result = $conn->query("SELECT max(object_id) as maxId FROM items");
                        $info = $result->fetch_assoc();
                        $maxId = $info['maxId']+1;
                        $result = $conn->query("
                         INSERT INTO   items ( owner_id,object_id, item_id, count, enchant_level, loc)
                            VALUES
                        (
                           '$charId',
                           '$maxId',                         
                            '$id',
                           '$count',
                            0,
                            'INVENTORY'
                        )");
                          
                        }
  
 
  }
Под [Lucera 1.7]
нужно переделать под character_items

Сам попробовал

Код:
function add_item($count,$id,$char,$comment) {             
            $conn = db_connect();
            $result = $conn->query("SELECT online,charId FROM `characters` WHERE char_name='$char'");
   if (!$result) throw new Exception('Проблема соединения с базой данных. Попробуйте позже.');
   $info = $result->fetch_assoc();
   $charId=$info['charId'];
   $result = $conn->query("INSERT INTO character_items (owner_id, item_id, count, enchant_level)
      VALUES
                        (
                           '$charId',                                 
                           '$id',                         
                           '$count',
                            0
                        )");
  }

Получилось так что при добавлении итема он записывается в таблице character_items и возвращает в таблицу accounts колонку money [1] "единицу" , а нужно как в том скрипте что бы возвращал 40
 
Мне лень было выкачивать люсю, по этому сделал на основе структуры таблицы, указанной тобой:
Код:
function add_item($count,$id,$char,$comment) {
    $conn = db_connect();

    $result = $conn->query("SELECT online,charId FROM `characters` WHERE char_name='$char'");
    if (!$result)
        throw new Exception('Проблема соединения с базой данных. Попробуйте позже.');
    $info = $result->fetch_assoc();
  
    if ($info['online'] != 0)
        throw new Exception('Персонаж должен находиться вне игры!');
    $result = $conn->query("SELECT * FROM  character_items  WHERE item_id = '$id' and owner_id = '$charId' LIMIT 1");
    $info = $result->fetch_assoc();

    if ($info['item_id'])
    {
        $count=$info['count']+$count;
        $itemId=$info['item_id'];
        $result = $conn->query("UPDATE character_items SET count = '$count' WHERE  item_id = '$itemId'");
    }
    else
    {
        $result = $conn->query("SELECT max(item_id) as maxId FROM character_items");
        $info = $result->fetch_assoc();
        $maxId = $info['maxId']+1;
        $result = $conn->query("INSERT INTO items (owner_id,object_id, item_id, count, enchant_level, loc)
                                VALUES ('$charId', '$maxId', '$id', '$count', 0, 'INVENTORY')");
    }
}

Сразу говорю, с ПХП не знаком, поэтому не знаю, заработает ли. Но я пытался... :Golddigging:
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Увы так же возвращает 1
 

Похожие темы

Ответы
2
Просмотры
Назад
Сверху Снизу