Вопросы

Всем привет! 

 

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

 

Вопрос: Как мне в 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 пользователей онлайн

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

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

    • Redmondd
      От Redmondd
      При запуске сервера в консоли пишет: Started server on port: 7777, with maxplayers: 500 lanmode is OFF.
      И когда захожу на сервер пишет server didnt respond
       
      ---------- Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team filterscripts = ""  (string) Server Plugins --------------  Loading plugin: mysql   > MySQL plugin R7-2 successfully loaded.   Loaded.  Loading plugin: sscanf  ===============================       sscanf plugin loaded.          Version:  2.8.1    (c) 2012 Alex "Y_Less" Cole  ===============================   Loaded.  Loading plugin: dc_cmd   Daniel's CMD plugin v2.8     (c) 2014 Daniel_Cortez         www.pro-pawn.ru   Loaded.  Loading plugin: streamer *** Streamer Plugin v2.7.9 by Incognito loaded ***   Loaded.  Loaded 4 plugins. Started server on port: 7777, with maxplayers: 500 lanmode is OFF. Filterscripts ---------------   Loaded 0 filterscripts. Подключение к базе данных MYSQL успешно ---------------------------------- --------Redmond RP 01-------- ---------------------------------- Number of vehicle models: 5 Склады загружены успешно Дома (15 шт) загружены успешно