MySQL [R6 -> R7]
#1

Всем привет. Занимаюсь переводом мода на R7. Столкнулся с проблемой.

В версии R6 у меня была такая функция:

Quote:

stock fromUnixTime(time)
{
new unbantime[25];
format(str, sizeof(str), "SELECT FROM_UNIXTIME( %d )", time);
if(mysql_query(str) && mysql_store_result())
{
mysql_fetch_row_format(unbantime);
}
mysql_free_result();
return unbantime;
}

Пример использования:

Quote:

if(!strcmp(cmd, "/checkbdlic", true))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, 0xAFAFAFAA, "USE: /checkbdlic [License Name][ID]");
giveplayerid = ReturnUser(tmp);

format(string, sizeof(string), "Check in DB taken licenses: %s [%d]", PLN[giveplayerid], giveplayerid);
SendClientMessage(playerid, 0xFFFF00AA, string);

new lictext[50];
if(License_Taken[giveplayerid][0] > gettime()) format(lictext, 50, "Taken to %s", fromUnixTime(License_Taken[giveplayerid][0]));
else lictext = "Not Taken";
format(string, sizeof(string), "Driving License: %s", lictext);
SendClientMessage(playerid, 0xFFFFFFAA, string);

if(License_Taken[giveplayerid][1] > gettime()) format(lictext, 50, "Taken to %s", fromUnixTime(License_Taken[giveplayerid][1]));
else lictext = "Not taken";
format(string, sizeof(string), "Flying license: %s", lictext);
SendClientMessage(playerid, 0xFFFFFFAA, string);

}

Но в R7 не работают запросы в 1 поток. Что можно сделать?
Reply
#2

Ну вообще-то есть функция для того что вы заставляли делать мускул.


PS работай вы в наше фирме уволили бы сразу за такое использование мускула. Мускул это не конвертер, это база данных!
Reply
#3

Хм, задался похожим вопросом. Как реализовать в PAWN конвертер из gettime() (Unix time) в обычную, понятную человеку дату? Видел в интернете конвертеры, но они сильно косили :/
Reply
#4

Quote:

Ну вообще-то есть функция для того что вы заставляли делать мускул.


PS работай вы в наше фирме уволили бы сразу за такое использование мускула. Мускул это не конвертер, это база данных!

Увидел бы, try разраб что ты тут написал, со смеху помер бы.
Reply
#5

PHP код:
stock fromUnixTime(time)
 {
 new 
unbantime[25];
 
format(strsizeof(str), "SELECT FROM_UNIXTIME( %d )"time);
 if(
mysql_query(str) && mysql_store_result())
 {
 
mysql_fetch_row_format(unbantime);
 }
 
mysql_free_result();
 return 
unbantime;
 } 
Круто.

PHP код:
Хмзадался похожим вопросомКак реализовать в PAWN конвертер из gettime() (Unix timeв обычнуюпонятную человеку датуВидел в интернете конвертерыно они сильно косили :/ 
timestamp это время в секундах прошедшее с начала эпохи UNIX (1 января 1970 года 00:00:00). Маниакальным делением с вычитанием из результата функции gettime можно получить привычную русскому человеку дату.
Reply
#6

Код:
stock Convert(number)
{
	new hours = 0, mins = 0, secs = 0, string[50];
	hours = floatround(number / 3600);
	mins = floatround((number / 60) - (hours * 60));
	secs = floatround(number - ((hours * 3600) + (mins * 60)));
	format(string, 50, "%d : %02d : %02d", hours, mins, secs);
	return string;
}
Reply
#7

Quote:
Originally Posted by Jon_De
Посмотреть сообщение
Код:
stock Convert(number)
{
	new hours = 0, mins = 0, secs = 0, string[50];
	hours = floatround(number / 3600);
	mins = floatround((number / 60) - (hours * 60));
	secs = floatround(number - ((hours * 3600) + (mins * 60)));
	format(string, 50, "%d : %02d : %02d", hours, mins, secs);
	return string;
}
А дату то как узнать?
Reply
#8

Quote:
Originally Posted by Jon_De
Посмотреть сообщение
timestamp это время в секундах прошедшее с начала эпохи UNIX (1 января 1970 года 00:00:00). Маниакальным делением с вычитанием из результата функции gettime можно получить привычную русскому человеку дату.
Пытался, но там разброс ~14 часов)
Reply
#9

а високосные годы учитываем?
На форуме пробегали инклюды с нужной вам функций, нужно только поискать.
Поскольку timestamp не учитывает високосные секунды, количество которых заранее предугадать не возможно, никакой проблемы написать нужную вам функцию я не вижу.
Reply
#10

Quote:
Originally Posted by jhonyxakep
Посмотреть сообщение
PHP код:
stock fromUnixTime(time)
 {
 new 
unbantime[25];
 
format(strsizeof(str), "SELECT FROM_UNIXTIME( %d )"time);
 if(
mysql_query(str) && mysql_store_result())
 {
 
mysql_fetch_row_format(unbantime);
 }
 
mysql_free_result();
 return 
unbantime;
 } 
Круто.
Не понял иронии


Ну раз уж подняли мою тему, то вот как раз функцию писал недавно

Выводит все верно, НО:
1. я там где-то в коде напутал видимо, так что пришлось костылем подгонять дату
2. оптимизацией не блещет

Будут предложения, пишите

http://pastebin.com/PeY1yz9v
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)