Проблема с загрузкой и сохранением | MySQL R7
#1

Всем привет. Возникла проблема при загрузке и сохранении значений из базы.
Вот сама загрузка:
pawn Код:
public LoadFactionsCallback()
{
    new rows, fields;
    cache_get_data(rows, fields);
    TOTAL_FACTIONS = rows;
    if(rows)
    {
        for (new id = 1; id < MAX_FACTIONS + 1 ; id ++)
        {
            szFaction[id][fID] = cache_get_field(id, "ID", g_ConnectionHandle);
            cache_get_field_content(id, "Name", szFaction[id][fName], g_ConnectionHandle);
            szFaction[id][fSpawnX] = cache_get_field(id, "SpawnX", g_ConnectionHandle);
            szFaction[id][fSpawnY] = cache_get_field(id, "SpawnY", g_ConnectionHandle);
            szFaction[id][fSpawnZ] = cache_get_field(id, "SpawnZ", g_ConnectionHandle);
            szFaction[id][fSpawnA] = cache_get_field(id, "SpawnA", g_ConnectionHandle);
            szFactionRank[id][0] = cache_get_field(id, "Rank1", g_ConnectionHandle);
            szFactionRank[id][1] = cache_get_field(id, "Rank2", g_ConnectionHandle);
            szFactionRank[id][2] = cache_get_field(id, "Rank3", g_ConnectionHandle);
            szFactionRank[id][3] = cache_get_field(id, "Rank4", g_ConnectionHandle);
            szFactionRank[id][4] = cache_get_field(id, "Rank5", g_ConnectionHandle);
            szFactionRank[id][5] = cache_get_field(id, "Rank6", g_ConnectionHandle);
            szFactionRank[id][6] = cache_get_field(id, "Rank7", g_ConnectionHandle);
            szFactionRank[id][7] = cache_get_field(id, "Rank8", g_ConnectionHandle);
            szFactionRank[id][8] = cache_get_field(id, "Rank9", g_ConnectionHandle);
            szFactionRank[id][9] = cache_get_field(id, "Rank10", g_ConnectionHandle);
            szFactionRank[id][10] = cache_get_field(id, "Rank11", g_ConnectionHandle);
            szFactionRank[id][11] = cache_get_field(id, "Rank12", g_ConnectionHandle);
            szFactionRank[id][12] = cache_get_field(id, "Rank13", g_ConnectionHandle);
            szFactionRank[id][13] = cache_get_field(id, "Rank14", g_ConnectionHandle);
            szFactionRank[id][14] = cache_get_field(id, "Rank15", g_ConnectionHandle);
        }
    }
    printf("Организации загружены. Количество: %d",TOTAL_FACTIONS);
    return true;
}
В mysql_log.txt пишет следущее:
pawn Код:
[20:25:46] LoadFactionsCallback() - Threaded function called.
[20:25:46] >> cache_get_data( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] >> cache_get_field( Connection handle: 1 )
[20:25:46] ProcessTick() - The cache has been cleared.
А вот сохранение:
pawn Код:
stock SaveFaction(factid)
{
    new query[550];
    format(query,550,"UPDATE "FactionTable" SET Name='%s',SpawnX='%f',SpawnY='%f',SpawnZ='%f',SpawnA='%f',Rank1='%s',Rank2='%s',Rank3='%s',Rank4='%s',Rank5='%s',Rank6='%s',Rank7='%s',Rank8='%s',Rank9='%s',Rank10='%s',Rank11='%s',Rank12='%s',Rank13='%s',Rank14='%s',Rank15='%s' WHERE ID = %d",
    szFaction[factid][fName],
    szFaction[factid][fSpawnX],
    szFaction[factid][fSpawnY],
    szFaction[factid][fSpawnZ],
    szFaction[factid][fSpawnA],
    szFactionRank[factid][0],
    szFactionRank[factid][1],
    szFactionRank[factid][2],
    szFactionRank[factid][3],
    szFactionRank[factid][4],
    szFactionRank[factid][5],
    szFactionRank[factid][6],
    szFactionRank[factid][7],
    szFactionRank[factid][8],
    szFactionRank[factid][9],
    szFactionRank[factid][10],
    szFactionRank[factid][11],
    szFactionRank[factid][12],
    szFactionRank[factid][13],
    szFactionRank[factid][14]);
    mysql_function_query(g_ConnectionHandle, query, false, "", "");
    printf("Организация [%d] успешно сохранена.");
    return true;
}
В логе про сохранение ничего нет.
Reply
#2

PHP код:
LoadFactionsCallback() 
Как и откуда вызываешь... код...
Reply
#3

WHERE ID = %d
параметр потерял.
Reply
#4

Quote:
Originally Posted by pozitiv4eg
Посмотреть сообщение
PHP код:
LoadFactionsCallback() 
Как и откуда вызываешь... код...
pawn Код:
mysql_function_query(g_ConnectionHandle, "SELECT * FROM `"FactionTable"`", true, "LoadFactionsCallback", "");
Quote:
Originally Posted by White_116
Посмотреть сообщение
WHERE ID = %d
параметр потерял.
Где потерял ?
Reply
#5

Quote:
Originally Posted by Be$$0n
Посмотреть сообщение
pawn Код:
mysql_function_query(g_ConnectionHandle, "SELECT * FROM `"FactionTable"`", true, "LoadFactionsCallback", "");

Где потерял ?
pawn Код:
stock SaveFaction(factid)
{
    new query[550];
    format(query,550,"UPDATE "FactionTable" SET Name='%s',SpawnX='%f',SpawnY='%f',SpawnZ='%f',SpawnA='%f',Rank1='%s',Rank2='%s',Rank3='%s',Rank4='%s',Rank5='%s',Rank6='%s',Rank7='%s',Rank8='%s',Rank9='%s',Rank10='%s',Rank11='%s',Rank12='%s',Rank13='%s',Rank14='%s',Rank15='%s' WHERE ID = %d",
    szFaction[factid][fName],
    szFaction[factid][fSpawnX],
    szFaction[factid][fSpawnY],
    szFaction[factid][fSpawnZ],
    szFaction[factid][fSpawnA],
    szFactionRank[factid][0],
    szFactionRank[factid][1],
    szFactionRank[factid][2],
    szFactionRank[factid][3],
    szFactionRank[factid][4],
    szFactionRank[factid][5],
    szFactionRank[factid][6],
    szFactionRank[factid][7],
    szFactionRank[factid][8],
    szFactionRank[factid][9],
    szFactionRank[factid][10],
    szFactionRank[factid][11],
    szFactionRank[factid][12],
    szFactionRank[factid][13],
    szFactionRank[factid][14],
    factid);
    mysql_function_query(g_ConnectionHandle, query, false, "", "");
    printf("Организация [%d] успешно сохранена.");
    return true;
}
factid
Reply
#6

Quote:
Originally Posted by stabker
Посмотреть сообщение
factid
Спасибо, исправил, но результат тот же...
Reply
#7

PHP код:
"UPDATE `FactionTable` SET Name='%s',SpawnX='%f',SpawnY='%f',SpawnZ='%f',SpawnA='%f',Rank1='%s',Rank2='%s',Rank3='%s',Rank4='%s',Rank5='%s',Rank6='%s',Rank7='%s',Rank8='%s',Rank9='%s',Rank10='%s',Rank11='%s',Rank12='%s',Rank13='%s',Rank14='%s',Rank15='%s' WHERE ID = %d" 
И последний параметр я не думаю что factid, нужно уникальный ид пользователя а не ид игрока.
Имхо new query[2048]; лучше выставить или ещё больше. 20 колонок * на максимальный текст который вмещаются туда + то что в формате. Считай в общем.
Reply
#8

Quote:
Originally Posted by White_116
Посмотреть сообщение
PHP код:
"UPDATE `FactionTable` SET Name='%s',SpawnX='%f',SpawnY='%f',SpawnZ='%f',SpawnA='%f',Rank1='%s',Rank2='%s',Rank3='%s',Rank4='%s',Rank5='%s',Rank6='%s',Rank7='%s',Rank8='%s',Rank9='%s',Rank10='%s',Rank11='%s',Rank12='%s',Rank13='%s',Rank14='%s',Rank15='%s' WHERE ID = %d" 
И последний параметр я не думаю что factid, нужно уникальный ид пользователя а не ид игрока.
Имхо new query[2048]; лучше выставить или ещё больше. 20 колонок * на максимальный текст который вмещаются туда + то что в формате. Считай в общем.
factid там уник. id фракции указан. Размер массива увеличил, но всё равно без эффекта...
Reply
#9

PHP код:
mysql_function_query(g_ConnectionHandle" SELECT * FROM `FactionTable` "true"LoadFactionsCallback"""); 
Reply
#10

Quote:
Originally Posted by pozitiv4eg
Посмотреть сообщение
PHP код:
mysql_function_query(g_ConnectionHandle" SELECT * FROM `FactionTable` "true"LoadFactionsCallback"""); 
FactionTable это дефайн с названием таблицы, LoadFactionsCallback вызывается, в mysql_log пишет что берёт данные, но вот дальше ничего не выполняется.
Reply
#11

На пробуй..
Первое что я заметил это "FactionTable" где `таблица`, правильно = `"FactionTable"`
Так же попробуем использовать mysql_query Бред но все же

PHP Code:
stock SaveFaction(factid)
{
    new 
query[333+480];
    
format(querysizeof(query), "UPDATE `"FactionTable"` SET Name = '%s', SpawnX = '%f', SpawnY = '%f', SpawnZ = '%f', SpawnA = '%f', Rank1 = '%s', \
    Rank2 = '%s', Rank3 = '%s', Rank4 = '%s', Rank5 = '%s', Rank6 = '%s', Rank7 = '%s', Rank8 = '%s', Rank9 = '%s', Rank10 = '%s', Rank11='%s', \
    Rank12 = '%s', Rank13 = '%s', Rank14 = '%s', Rank15 = '%s' WHERE ID = %d"
, \
    
szFaction[factid][fName], \
    
szFaction[factid][fSpawnX], szFaction[factid][fSpawnY], szFaction[factid][fSpawnZ], szFaction[factid][fSpawnA], \
    
szFactionRank[factid][0], szFactionRank[factid][1], szFactionRank[factid][2], szFactionRank[factid][3], szFactionRank[factid][4], \
    
szFactionRank[factid][5], szFactionRank[factid][6], szFactionRank[factid][7], szFactionRank[factid][8], szFactionRank[factid][9], \
    
szFactionRank[factid][10], szFactionRank[factid][11], szFactionRank[factid][12], szFactionRank[factid][13], szFactionRank[factid][14]);
    
mysql_query(query, -1, -1g_CH);
    
printf("Организация [%d] успешно сохранена."factid);
    return 
true;

И да, попробуй поставить проверку или есть данные :3

PHP Code:
stock SaveFaction(factid)
{
    new 
query[333+480];
    
printf("#Проверка: Rank2 = %s, Name = %s, SpawnX = %f, SpawnY = %f, SpawnZ = %f"szFactionRank[factid][2], szFaction[factid][fName], szFaction[factid][fSpawnX], szFaction[factid][fSpawnY], szFaction[factid][fSpawnZ]);
    
format(querysizeof(query), "UPDATE `"FactionTable"` SET Name = '%s', SpawnX = '%f', SpawnY = '%f', SpawnZ = '%f', SpawnA = '%f', Rank1 = '%s', \
    Rank2 = '%s', Rank3 = '%s', Rank4 = '%s', Rank5 = '%s', Rank6 = '%s', Rank7 = '%s', Rank8 = '%s', Rank9 = '%s', Rank10 = '%s', Rank11='%s', \
    Rank12 = '%s', Rank13 = '%s', Rank14 = '%s', Rank15 = '%s' WHERE ID = %d"
, \
    
szFaction[factid][fName], \
    
szFaction[factid][fSpawnX], szFaction[factid][fSpawnY], szFaction[factid][fSpawnZ], szFaction[factid][fSpawnA], \
    
szFactionRank[factid][0], szFactionRank[factid][1], szFactionRank[factid][2], szFactionRank[factid][3], szFactionRank[factid][4], \
    
szFactionRank[factid][5], szFactionRank[factid][6], szFactionRank[factid][7], szFactionRank[factid][8], szFactionRank[factid][9], \
    
szFactionRank[factid][10], szFactionRank[factid][11], szFactionRank[factid][12], szFactionRank[factid][13], szFactionRank[factid][14]);
    
mysql_query(query, -1, -1g_CH);
    
printf("Организация [%d] успешно сохранена."factid);
    return 
true;

Reply
#12

PHP Code:
            szFaction[id][fID] = cache_get_field(id"ID");
            
cache_get_field_content(id"Name"szFaction[id][fName]);
            
szFaction[id][fSpawnX] = cache_get_field(id"SpawnX");
            
szFaction[id][fSpawnY] = cache_get_field(id"SpawnY");
            
szFaction[id][fSpawnZ] = cache_get_field(id"SpawnZ");
            
szFaction[id][fSpawnA] = cache_get_field(id"SpawnA";
            
szFactionRank[id][0] = cache_get_field(id"Rank1");
            
szFactionRank[id][1] = cache_get_field(id"Rank2");
            
szFactionRank[id][2] = cache_get_field(id"Rank3");
            
szFactionRank[id][3] = cache_get_field(id"Rank4";
            
szFactionRank[id][4] = cache_get_field(id"Rank5");
            
szFactionRank[id][5] = cache_get_field(id"Rank6");
            
szFactionRank[id][6] = cache_get_field(id"Rank7");
            
szFactionRank[id][7] = cache_get_field(id"Rank8");
            
szFactionRank[id][8] = cache_get_field(id"Rank9");
            
szFactionRank[id][9] = cache_get_field(id"Rank10");
            
szFactionRank[id][10] = cache_get_field(id"Rank11");
            
szFactionRank[id][11] = cache_get_field(id"Rank12");
            
szFactionRank[id][12] = cache_get_field(id"Rank13");
            
szFactionRank[id][13] = cache_get_field(id"Rank14");
            
szFactionRank[id][14] = cache_get_field(id"Rank15"); 
Пробуй!
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)