Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Урок SavePlayerMysQL(...)

SporTsmaN

Изучающий
Пользователь
Регистрация
16 Апр 2013
Сообщения
744
Лучшие ответы
0
Репутация
218
Доброго времени суток! Хочу с Вами поделиться такой функцией как SavePlayerMysQL(...). Создавал я её для своего сервера. В чем же еще смысл? Лично у меня в моде очень много связанно с MySQL, прям очень и мне не удобно каждый раз меняя значение переменной, обнулять массив, делать format и посылать запрос в БД.

Пример:
PHP:
Query = "";
format(Query, 150, "UPDATE `account` SET `FiremanSkill`='%d',`FiremanCount`='%d' WHERE `Nick` = '%s'",
Player[playerid][pFiremanSkill], Player[playerid][pFiremanCount], PlayerName(playerid));

И я решил это дело упростить для себя, сделав так:

PHP:
#define Save_Level 0
#define Save_Money 1
#define Save_Skin 2


stock SavePlayerMysQL(...)
{
	new x = numargs()-1;
	new playerid = getarg(0);
	savequery = "UPDATE `account` SET ";
	for(new i = numargs(); --i > 0;)
	{
	    Query = "";
		if(getarg(i) == Save_Level)
		{
		    format(Query, 50, "`Level` = '%d'", Player[playerid][pLevel]);
			strcat(savequery, Query);
			if(--x >= 0) strcat(savequery, ","), x--;
		}
		else if(getarg(i) == Save_Money)
		{
		    format(Query, 50, "`Money` = '%d'", Player[playerid][pCash]);
			strcat(savequery, Query);
   			if(--x >= 0) strcat(savequery, ","), x--;
		}
		else if(getarg(i) == Save_Skin)
		{
		    format(Query, 50, "`Skin` = '%d'", Player[playerid][pChar]);
			strcat(savequery, Query);
  		 	if(--x >= 0) strcat(savequery, ","), x--;
		}
		if(i == 1) 
		{
		    Query = "";
		    format(Query, 50, " WHERE `Nick` = '%s'", Player[playerid][pNick]);
			strcat(savequery, Query);
		}
	}
	mysql_pquery(dbHandle, savequery, "","");
	return true;
}

Как работает этот адский код:

PHP:
SavePlayerMysQL(playerid, Save_Level, Save_Money, Save_Skin);

Я не буду Вам рекомендовать, вставлять это в свой код. Я это делал под свой мод. Решил выложить, может быть кому-то и пригодится и натолкнет на новую идею.
 
Последнее редактирование модератором:
Сверху Снизу