Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для Andrik851
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.10.2018
    Сообщений
    199
    Репутация:
    1 ±

    Система счетов в банке

    Добрый день помогите пожалуйста имеестся система счетов в банке но вот такая проблемма при открытии нового счета в банке он открывается далее второй третий и так далее но когда переходишь во вкладку управления счетами пишет что " Что у вас нет счетов в банке " хотя в базе даннызх их 3 но в отдельной таблице они не создаются

    PHP код:
        case D_BANK_MENU 1:
            {
                if(!
    response) return 1;

                if(
    GetMoney(playerid) < 5000)
                return 
    SendClientMessage(playerid, -1""cER"У Вас недостаточно средств на счете, для открытия нового счета в банке");

                
    PI[playerid][pBankCount] ++ ;
                
    MysqlUpdatePlayerInt(playerid"bankcount"PI[playerid][pBankCount]);
                
                new 
    player_ip[16];
                
    GetPlayerIp(playeridplayer_ipsizeof player_ip);

                
    global_string "";

                
    mysql_format(dbHandleglobal_string128"INSERT INTO bank (name, ip, data, cash) values ('%s', '%s', NOW(), '250')"GetName(playerid), player_ip);// вся проблемма думаю в этом
                
    mysql_tquery(dbHandleglobal_string"""");

                
    SendMes(playerid0x76CD5EFF"[Банк]: {FFFFFF}новый счет на имя {F3F142}%s {FFFFFF}успешно открыт в нашем банке"GetName(playerid));
            } 
    и вот диалог и паблик управления счетами в банке

    PHP код:
        case D_BANK_MENU 2:
            {
                if(!
    response) return 1;

                switch(
    listitem)
                {
                case 
    0:
                    {

                        
    SetPVarInt(playerid"bank_type"1);

                        
    global_string "";

                        
    mysql_format(dbHandleglobal_string128"SELECT * FROM `bank` WHERE `name` = '%s'"GetName(playerid));
                        
    mysql_tquery(dbHandleglobal_string"ShowBankMoney""i"playerid);

                    }

                case 
    1:
                    {
                        
    ShowPlayerDialog(playeridD_BANK_MENU 3DIALOG_STYLE_INPUT"{"#cSV"}Заблокировать банковский счет", "{FFFFFF}В данном окне Вы можете заблокировать Ваш банковский счет\nПосле блокировки счета, Вы, и никто другой, не сможет совершать платежи и переводы на Ваш счет\nСчет всегда можно разблокировать в меню банка\n\nУкажите номер счета, который необходимо заблокировать:", "Далее", "Назад");
                    
    }

                case 
    2:
                    {
                        
    ShowPlayerDialog(playeridD_BANK_MENU 4DIALOG_STYLE_INPUT"{"#cSV"}Разблокировать банковский счет", "{FFFFFF}В данном окне Вы можете разблокировать Ваш банковский счет\n\nУкажите номер счета, который необходимо разблокировать:", "Далее", "Назад");
                    
    }

                case 
    3:
                    {
                        
    ShowPlayerDialog(playeridD_BANK_MENU 5DIALOG_STYLE_INPUT"{"#cSV"}Закрыть банковский счет", "{FFFFFF}В данном окне Вы можете закрыть счет в нашем банке\nСчет закрывается навсегда и больше не сможет использоваться\nВсе деньги, которые остались на этом счете, будут утеряны\n\nУкажите номер счета, который необходимо закрыть:", "Далее", "Назад");
                    
    }

                }
            } 
    и паблик управления счетами в банке

    PHP код:
    publicsShowBankMoney(playerid)
    {
        new 
    rf;
        
    cache_get_data(rf);
        if(!
    r)
        return 
    SendClientMessage(playerid, -1""cER"У Вас не имеется счетов в банке"), DeletePVar(playerid"bank_type");

        new 
    fmt_str[128], b_idb_moneyb_block;
        
    global_string "";

        for(new 
    idxidx ridx++)
        {
            
    b_id cache_get_field_content_int(idx"id");
            
    b_money cache_get_field_content_int(idx"cash");
            
    b_block cache_get_field_content_int(idx"block");
            
    format(fmt_strsizeof fmt_str"{FFFFFF}Счёт №%d - Баланс: {9C9E9B}%d руб. {FFFFFF}- %s\n"b_idb_money, !b_block ? ("{8DC65B}Активен") : ("{F77625}Заблокирован"));
            
    strcat(global_stringfmt_str);
            
    SetPlayerListitemValue(playerididxb_id);
        }

        
    ShowPlayerDialog(playeridD_BANK_MONEYDIALOG_STYLE_LIST"{"#cSV"}Ваши банковские счета:", global_string, "Выбрать", "Выход");

        
    return 1;

    Последний раз редактировалось Andrik851; 12.10.2019 в 19:30.

  2. #2
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    Лучше, при привязке данных к аккаунту, использовать ключом ID игрока из базы, нежели его имя.

  3. #3
    Аватар для Andrik851
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.10.2018
    Сообщений
    199
    Репутация:
    1 ±
    а как это сделать можете подсказать как правильно сделать этот запрос или как оно называется в бд

  4. #4
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    Цитата Сообщение от Andrik851 Посмотреть сообщение
    а как это сделать можете подсказать как правильно сделать этот запрос или как оно называется в бд
    Это уже из темы "правильное проектирование БД".

  5. #5
    Аватар для Andrik851
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.10.2018
    Сообщений
    199
    Репутация:
    1 ±
    я сейчас понял что то сделал и получилось так что у меня счета теперь создаются но только вместо имени заполняет айпи

  6. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Во-первых, зачем вот в этом запросе 250?
    1. mysql_format(dbHandle, global_string, 128, "INSERT INTO bank (name, ip, data, cash) values ('%s', '%s', NOW(), '250')", GetName(playerid), player_ip);
    2. mysql_tquery(dbHandle, global_string, "", "");

    В структуре таблицы можно выставить значение по умолчанию для столбца. Указываешь там 250, а тут убиваешь "cash" и "250", тем самым экономя память и время при формировании запроса.

    Во-вторых, ты логировал этот запрос вообще? Данные правильные вставляются? Что в mysql_log пишется?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •