PDA

Просмотр полной версии : [Вопрос] Подсчитывание ячеек



Bady
01.09.2015, 18:21
1.Подскажите как подсчитывать ячейки в стрингах в запросах.
Пример:

mysql_format(connects, stringer, 60, "SELECT * FROM `banip` WHERE IP = '%e' Limit 1", pData[playerid][pGetIp]);
mysql_function_query(connects, stringer, true, "GetBannedConnect", "i", playerid);
И еще пример:

mysql_format(connects,stringer,256,"INSERT INTO `business` (bID,bName,bVW,bKrisha,bPribil) VALUES ('%d','%s','%d','%d','%d')",BIZES, BizInfo[ BIZES ][ bName ],BIZES,0,0);
mysql_function_query(connects, stringer, false, "", "");
Ну и такой:

format(stringer13, sizeof(stringer13),"UPDATE `business` SET bKrisha = '%d' WHERE bID = '%d'",BizInfo[BIZES][bKrisha],BIZES);
mysql_function_query(connects,stringer13, false, "", "");

2.В подсчитывании ячеек, цвета и переход на новую строчку и т.п. (Примеры: 0xFFFFFF,\n,\t,~g~ и другое.) тоже нужно подсчитывать?

#Vito
01.09.2015, 19:00
1. Клик (http://pro-pawn.ru/showthread.php?12301-%D0%AF%D1%87%D0%B5%D0%B9%D0%BA%D0%B8-new)
2. Да, всё это тоже нужно подсчитывать.

Bady
01.09.2015, 19:10
1. Клик (http://pro-pawn.ru/showthread.php?12301-%D0%AF%D1%87%D0%B5%D0%B9%D0%BA%D0%B8-new)
2. Да, всё это тоже нужно подсчитывать.
С простыми текстами я знаю как подсчитывать. 1. С запросами как? или так же ?

#Vito
01.09.2015, 19:11
С простыми текстами я знаю как подсчитывать. 1. С запросами как? или так же ?
Так же, это один и тот же массив

Bady
01.09.2015, 19:14
Так же, это один и тот же массив
Так ведь ?
Пример запроса:

mysql_format(connects, stringer, 60, "SELECT * FROM `banip` WHERE IP = '%e' Limit 1", pData[playerid][pGetIp]);
1. SELECT * FROM `banip` WHERE IP = ' = 34 ячейки
2.%e` = 17 ячеек (pGetIp = 16)
3 Limit 1 = 8 ячеек ( с пробелом), суммируем = 57 и +1 дополнительная.
Верно?

#Vito
01.09.2015, 19:22
Да, всё так.

Bady
01.09.2015, 19:25
Закройте тему!

Daniel_Cortez
02.09.2015, 01:06
Так ведь ?
Пример запроса:

mysql_format(connects, stringer, 60, "SELECT * FROM `banip` WHERE IP = '%e' Limit 1", pData[playerid][pGetIp]);
1. SELECT * FROM `banip` WHERE IP = ' = 34 ячейки
2.%e` = 17 ячеек (pGetIp = 16)
3 Limit 1 = 8 ячеек ( с пробелом), суммируем = 57 и +1 дополнительная.
Верно?

Вместо того, чтобы вручную высчитывать каждый символ в строке, могли бы просто вынести эту строку в константу, взять её размер с помощью sizeof, отнять 2 (длина спецификатора "%e") и прибавить 15 (макс. длина IP-адреса, завершающий нуль-символ не в счёт - он уже есть в конце форматируемой строки).


static const fmt_str[] = "SELECT * FROM `banip` WHERE IP = '%e' Limit 1";
new buffer[sizeof(fmt_str)-2+15];
mysql_format(connects, buffer, sizeof(buffer), fmt_str, pData[playerid][pGetIp]);

Bady
03.09.2015, 00:31
Вместо того, чтобы вручную высчитывать каждый символ в строке, могли бы просто вынести эту строку в константу, взять её размер с помощью sizeof, отнять 2 (длина спецификатора "%e") и прибавить 15 (макс. длина IP-адреса, завершающий нуль-символ не в счёт - он уже есть в конце форматируемой строки).


static const fmt_str[] = "SELECT * FROM `banip` WHERE IP = '%e' Limit 1";
new buffer[sizeof(fmt_str)-2+15];
mysql_format(connects, buffer, sizeof(buffer), fmt_str, pData[playerid][pGetIp]);

Не знал, спасибо.