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

    Статус
    Оффлайн
    Регистрация
    17.08.2015
    Сообщений
    28
    Репутация:
    0 ±

    Проблема с выводом информации из Базы Данных

    Моя проблема заключается в выводе названий фракций из базы данных.

    Макс. кол-во организаций:
    PHP код:
    const max_org  4
    Массив:

    PHP код:
    enum org_var {
        
    org_id,
        
    org_name[32],
        
    org_leader[24],
         
    org_rank_1[15],
        
    org_rank_2[15],
        
    org_rank_3[15],
        
    org_rank_4[15],
        
    org_rank_5[15],
        
    org_rank_6[15],
        
    org_rank_7[15],
    };
    new 
    org_info[max_org][org_var]; 
    Команда вывода списка информаций:
    PHP код:
    COMMAND:test(playerid)
    {
        new 
    leaders[1024], string[144];
         for(new 
    0sizeof(org_info); i++)
        {
            
    format(string,sizeof(string), "%d. %s\t%s\n"org_info[i][org_id], org_info[i][org_name], org_info[i][org_leader]);
            
    strcat(leaders,string);
        }
        
    ShowPlayerDialog(playerid,1337DIALOG_STYLE_TABLIST,"Список организаций",leaders,"Выбор","Отмена");
        return 
    true;

    Теперь к сути проблемы, в БД у меня создано все 3 организации, но при показе выводится пустая строка, хотя в цикле стоит sizeof.
      Открыть/закрыть


    Если изменить значение const на 3, то лишней строки при показе не будет. Но такой вариант мне не подходит, потому что будет команда создания организаций и поэтому каждый раз менять значение const не вариант. Помогите.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Эмм
    PHP код:
    COMMAND:test(playerid

        new 
    leaders[1024], string[144]; 
         for(new 
    0sizeof(org_info)-1i++) 
        { 
            
    format(string,sizeof(string), "%d. %s\t%s\n"org_info[i][org_id], org_info[i][org_name], org_info[i][org_leader]); 
            
    strcat(leaders,string); 
        } 
        
    ShowPlayerDialog(playerid,1337DIALOG_STYLE_TABLIST,"Список организаций",leaders,"Выбор","Отмена"); 
        return 
    true

    Хотя лучше так
    PHP код:
    COMMAND:test(playerid)
    {
        new 
    leaders[1024];
         for(new 
    0sizeof(org_info)-1i++)
        {
            
    format(leaders,sizeof(leaders), "%s\n%d. %s\t%s"leadersorg_info[i][org_id], org_info[i][org_name], org_info[i][org_leader]);
        }
        
    ShowPlayerDialog(playerid,1337DIALOG_STYLE_TABLIST,"Список организаций",leaders,"Выбор","Отмена");
        return 
    true;

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  3. Пользователь сказал cпасибо:
    cpt. (23.01.2016)
  4. #3
    Аватар для Роуди.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.07.2015
    Сообщений
    154
    Репутация:
    17 ±
    for(new i = 1; i < sizeof(org_info); i++)

    Начинать цикл с единички, а не с нуля..
    Мои глаза от твоего кода лезут на гавно-инфо и создают тему о расстановке пикапов.

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

    Статус
    Оффлайн
    Регистрация
    17.08.2015
    Сообщений
    28
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Эмм
    PHP код:
    COMMAND:test(playerid

        new 
    leaders[1024], string[144]; 
         for(new 
    0sizeof(org_info)-1i++) 
        { 
            
    format(string,sizeof(string), "%d. %s\t%s\n"org_info[i][org_id], org_info[i][org_name], org_info[i][org_leader]); 
            
    strcat(leaders,string); 
        } 
        
    ShowPlayerDialog(playerid,1337DIALOG_STYLE_TABLIST,"Список организаций",leaders,"Выбор","Отмена"); 
        return 
    true

    Хотя лучше так
    PHP код:
    COMMAND:test(playerid)
    {
        new 
    leaders[1024];
         for(new 
    0sizeof(org_info)-1i++)
        {
            
    format(leaders,sizeof(leaders), "%s\n%d. %s\t%s"leadersorg_info[i][org_id], org_info[i][org_name], org_info[i][org_leader]);
        }
        
    ShowPlayerDialog(playerid,1337DIALOG_STYLE_TABLIST,"Список организаций",leaders,"Выбор","Отмена");
        return 
    true;

    Благодарствую, второй вариант не подошёл, выбрал первый.

 

 

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

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

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

Ваши права

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