Вопросы

Всем привет! 

 

У меня на проекте есть система штрафов, когда игрок оплачивает один штраф по его номеру все нормально. 

 

Вопрос: Как мне в mysql сложить один столбик со всех строк путем вычислений что бы на сервере получить общую сумму для оплаты всех разом штрафов?

Нужный мне столбик обведен! Кликабельно!

 

 

Поделиться сообщением


Ссылка на сообщение

5 ответов на этот вопрос

  • 0

@Andrei_Morozov,

new rows, fields;
cache_get_data(rows, fields);
new sum = cache_get_row_int(0, 0, mysql);

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Andrei_Morozov

SELECT SUM(price) FROM таблица WHERE (условие)

В целом, запрос читается так: "Получить сумму значений из столбца "price" в таблице "таблица", где (условие). Например, для игрока с номером 1 будет так:

SELECT SUM(price) FROM таблица WHERE number = 1

И результат данного запроса будет возвращен как столбец с названием "SUM(price)". То есть для его загрузки придется использовать следующий вариант:

new sum;
cache_get_value_name_int(0, "SUM(price)", sum);

Можно и придать виртуальное имя данному столбцу. Например, назовем его "ticket_sum":

SELECT SUM(price) AS ticket_sum FROM таблица WHERE number = 1

И загрузка тогда примет следующий вид:

new sum;
cache_get_value_name_int(0, "ticket_sum", sum);

 

Поделиться сообщением


Ссылка на сообщение
  • 0
1 час назад, odosenok сказал:

@Andrei_Morozov


SELECT SUM(price) FROM таблица WHERE (условие)

В целом, запрос читается так: "Получить сумму значений из столбца "price" в таблице "таблица", где (условие). Например, для игрока с номером 1 будет так:


SELECT SUM(price) FROM таблица WHERE number = 1

И результат данного запроса будет возвращен как столбец с названием "SUM(price)". То есть для его загрузки придется использовать следующий вариант:


new sum;
cache_get_value_name_int(0, "SUM(price)", sum);

Можно и придать виртуальное имя данному столбцу. Например, назовем его "ticket_sum":


SELECT SUM(price) AS ticket_sum FROM таблица WHERE number = 1

И загрузка тогда примет следующий вид:


new sum;
cache_get_value_name_int(0, "ticket_sum", sum);

 

 

Как мне выгрузить на mysql r36-9

Поделиться сообщением


Ссылка на сообщение
  • 0

@Andrei_Morozov, покажи загрузку чего-нибудь (домов или машин как пример).

Поделиться сообщением


Ссылка на сообщение
  • 0
55 минут назад, Talex сказал:

@Andrei_Morozov, покажи загрузку чего-нибудь (домов или машин как пример).

 

Спойлер

publics LoadHouse()
{
    new time = GetTickCount();
    new rows, fields;
	cache_get_data(rows, fields);
	for(new i; i < TOTALHOUSE; i++) strmid(HouseInfo[i][hOwner],"None",0,strlen("None"),MAX_PLAYER_NAME);
	if(rows)
	{
		for(new idx = 1; idx <= rows; idx++)
		{
		    HouseInfo[idx][hID] = cache_get_row_int(idx-1, 0, mysql); // id
			HouseInfo[idx][hEntr][0] = cache_get_row_float(idx-1, 1, mysql); // hEntrx
			HouseInfo[idx][hEntr][1] = cache_get_row_float(idx-1, 2, mysql); // hEntry
			HouseInfo[idx][hEntr][2] = cache_get_row_float(idx-1, 3, mysql); // hEntrz
			HouseInfo[idx][hCar][0] = cache_get_row_float(idx-1, 4, mysql); // carx
			HouseInfo[idx][hCar][1] = cache_get_row_float(idx-1, 5, mysql); // cary
			HouseInfo[idx][hCar][2] = cache_get_row_float(idx-1, 6, mysql); // carz
			HouseInfo[idx][hCar][3] = cache_get_row_float(idx-1, 7, mysql); // carfa
			cache_get_row(idx-1, 8, HouseInfo[idx][hOwner], mysql, MAX_PLAYER_NAME); // hOwner
			HouseInfo[idx][hClass] = cache_get_row_int(idx-1, 9, mysql); // hClass
			HouseInfo[idx][hPrice] = cache_get_row_int(idx-1, 10, mysql); // hPrice
			HouseInfo[idx][hBuyPrice] = cache_get_row_int(idx-1, 11, mysql); // buyprice
			HouseInfo[idx][hInt] = cache_get_row_int(idx-1, 12, mysql); // hInt
			HouseInfo[idx][hLock] = cache_get_row_int(idx-1, 13, mysql); // hLock
			HouseInfo[idx][hDays] = cache_get_row_int(idx-1, 14, mysql); // hDays
			HouseInfo[idx][hHeal] = cache_get_row_int(idx-1, 15, mysql); // hHeal
			HouseInfo[idx][hGarage] = cache_get_row_int(idx-1, 16, mysql); // hGarage
			HouseInfo[idx][hAutoDoors] = cache_get_row_int(idx-1, 17, mysql); // hAutoDoors
			HouseInfo[idx][hSubsidia] = cache_get_row_int(idx-1, 18, mysql); // hSubsidia

			if(HouseInfo[idx][hDays] < 1 || HouseInfo[idx][hDays] > 30) HouseInfo[idx][hDays] = 1;

           	HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEntr][0], HouseInfo[idx][hEntr][1], HouseInfo[idx][hEntr][2], (GetString(HouseInfo[idx][hOwner],"None")) ? (31) : (32), 0, -1, -1, -1, 15.0);

			if(GetString(HouseInfo[idx][hOwner],"None")) HouseInfo[idx][hObjectEnter] = CreateDynamicPickup(1273, 23, HouseInfo[idx][hEntr][0], HouseInfo[idx][hEntr][1], HouseInfo[idx][hEntr][2], 0);
			else HouseInfo[idx][hObjectEnter] = CreateDynamicPickup(1272, 23, HouseInfo[idx][hEntr][0], HouseInfo[idx][hEntr][1], HouseInfo[idx][hEntr][2], 0);

            new texthouse[15];
			format(texthouse, sizeof(texthouse), "Дом №%i", idx);
			HouseInfo[idx][hTextEnter] = CreateDynamic3DTextLabel(texthouse, 0xFFFFFFFF, HouseInfo[idx][hEntr][0], HouseInfo[idx][hEntr][1], HouseInfo[idx][hEntr][2]+1.0, 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, 0, 0);

			new _c = HouseInfo[idx][hClass], _i = HouseInfo[idx][hInt];
			if(!HouseInfo[idx][hAutoDoors]) HouseInfo[idx][hTextExit] = CreateDynamic3DTextLabel("Выход - {FFFF00}'/exit'\n{FFFFFF}Управление домом - {FFFF00}'/home'", 0xFFFFFFFF, HintsInfo[_c][_i][hiExitX], HintsInfo[_c][_i][hiExitY], HintsInfo[_c][_i][hiExitZ], 6.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, HouseInfo[idx][hID], HintsInfo[_c][_i][hiInt]);
			else HouseInfo[idx][hTextExit] = CreateDynamic3DTextLabel("Выход - {FFFF00}'ALT'\n{FFFFFF}Управление домом - {FFFF00}'/home'", 0xFFFFFFFF, HintsInfo[_c][_i][hiExitX], HintsInfo[_c][_i][hiExitY], HintsInfo[_c][_i][hiExitZ], 6.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, HouseInfo[idx][hID], HintsInfo[_c][_i][hiInt]);

			TOTALHOUSE++;
        }
        printf("Дома | %d - Дома были успешно загружены за (%d мс)!", TOTALHOUSE, GetTickCount() - time);
    }
    else printf("Дома | Дома дома не созданы!");
	return 1;
}

 

 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Узбек
      От Узбек
      Всем добрый вечер ребят! 
      Я начинающий, сегодня я вам сливаю команду 2(шт) на технические работы
      Ловите 
       
    • nazpol9
      От nazpol9
      Привет всем.

      У меня имеется мод для самп сервера и VPS с Ubuntu, на котором я пытаюсь его запустить.

      В чем суть проблемы: при запуске samp03svr, сервер запускается, но на версии 0.3.DL R-1. Когда я пытаюсь запустить этот же мод локально на Windows, сервер работает на версии 0.3.7 и я могу зайти на него без клиента 0.3.DL.

      Для решения этой проблемы я уже пробовал заменять инклуды и исполнительные файлы теми, что есть в архивах на официальном сайте сампа, перекомпилировал мод, и ничего не изменилось.
       
      #include <a_samp> #include <a_mysql> #include <foreach> #include <Pawn.RakNet> #include <streamer> #include <sscanf2> #include <float2> #include <crashdetect> #include <fmt> #include <a_http> #include <Pawn.CMD> #include <Pawn.Regex> #include <requests> #include <callbacks> #include <MD5> #include <mxdate> #include <TOTP> #include <gvar> #include <md-sort> #include <nex-ac> #include <weapon-config> #include <discord-connector> #include <3DTryg> #include <textdraw-streamer>  
      plugins crashdetect.so streamer.so textdraw-streamer.so sscanf.so pawnraknet.so pawncmd.so mysql.so requests.so profiler.so pawnregex.so TOTP.so gvar.so discord-connector.so

      Если у кого-то будут какие-либо догадки, прошу ими поделиться, если понадобится больше информации - я постараюсь её предоставить.