Доступ к архиву

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

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

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

MYSQL пара ошибок

Статус
В этой теме нельзя размещать новые ответы.

Lonton

Начинающий
Пользователь
Регистрация
4 Дек 2011
Сообщения
58
Лучшие ответы
0
Репутация
1
Мужики, было бы круто если поможете! Начал потихоньку осваивать MYSQL и даже получается что-то, написал сохранения для бизнесов, но что-то они не работают :cf: :
PHP:
MYSQL R39-4
PHP:
stock LoadBizz()
{
	mysql_function_query(cH, "SELECT * FROM `"TABLE_BIZ"`", true, "OnLoadBizzCallback", "");
	return 1;
}

forward OnLoadBizzCallback();
public OnLoadBizzCallback()
{
	new rows, fields, i, fub[64];
	cache_get_data(rows, fields);
	for(i = 0; i < rows; i++)
	{
	    cache_get_field_content(i, "bID", fub), BizzInfo[i][bID] = strval(fub);
  		cache_get_field_content(i, "bEntranceX", fub), BizzInfo[i][bEntranceX] = floatstr(fub);
  		cache_get_field_content(i, "bEntranceY", fub), BizzInfo[i][bEntranceY] = floatstr(fub);
  		cache_get_field_content(i, "bEntranceZ", fub), BizzInfo[i][bEntranceZ] = floatstr(fub);
  		cache_get_field_content(i, "bExitX", fub), BizzInfo[i][bExitX] = floatstr(fub);
  		cache_get_field_content(i, "bExitY", fub), BizzInfo[i][bExitY] = floatstr(fub);
  		cache_get_field_content(i, "bExitZ", fub), BizzInfo[i][bExitZ] = floatstr(fub);
  		cache_get_field_content(i, "bOwner", fub), strmid(BizzInfo[i][bOwner], fub, 0, strlen(fub), MAX_PLAYER_NAME);
  		cache_get_field_content(i, "bExtortion", fub), strmid(BizzInfo[i][bExtortion], fub, 0, strlen(fub), MAX_PLAYER_NAME);
  		cache_get_field_content(i, "bMessage", fub), strmid(BizzInfo[i][bMessage], fub, 0, strlen(fub), MAX_PLAYER_NAME);
  		cache_get_field_content(i, "bOwned", fub), BizzInfo[i][bOwned] = strlen(fub);
		cache_get_field_content(i, "bBuyPrice", fub), BizzInfo[i][bBuyPrice] = strval(fub);
	    cache_get_field_content(i, "bEntranceCost", fub), BizzInfo[i][bEntranceCost] = strval(fub);
	    cache_get_field_content(i, "bTill", fub), BizzInfo[i][bTill] = strval(fub);
		cache_get_field_content(i, "bProducts", fub), BizzInfo[i][bProducts] = strval(fub);
	    cache_get_field_content(i, "bMaxProducts", fub), BizzInfo[i][bMaxProducts] = strval(fub);
	    cache_get_field_content(i, "bPriceProd", fub), BizzInfo[i][bPriceProd] = strval(fub);
	    cache_get_field_content(i, "bLocked", fub), BizzInfo[i][bLocked] = strval(fub);
	    cache_get_field_content(i, "bInterior", fub), BizzInfo[i][bInterior] = strval(fub);
	    cache_get_field_content(i, "bLevelNeeded", fub), BizzInfo[i][bLevelNeeded] = strval(fub);

 		new text[600];
		if(BizzInfo[i][bOwned] == 0)
		{
		    format(text, sizeof(text),"{FF6347}%s"color_white"\nID: {7CFC00}%d"color_white"\nЦена: {7CFC00}$%d"color_white"\nУровень: {7CFC00}%d\n"color_white"Купить: "color_lred"/buybiz", BizzInfo[i][bMessage], i, BizzInfo[i][bBuyPrice], BizzInfo[i][bLevelNeeded]);
			AddStaticPickup(1239, 23, BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]);
		}
		if(BizzInfo[i][bOwned] == 1)
		{
			if(BizzInfo[i][bLocked] == 1) format(text, sizeof(text),"{FF6347}%s"color_lred"\nЗакрыто"color_white"\nID: {7CFC00}%d"color_white"\nВладелец: {7CFC00}%s"color_white"\nПродукты: {FF6347}%d/%d шт"color_lblue"\nЦена за 1 продукт: {7CFC00}$%d", BizzInfo[i][bMessage], i, BizzInfo[i][bOwner], BizzInfo[i][bProducts], BizzInfo[i][bMaxProducts], BizzInfo[i][bPriceProd]);
			else if(BizzInfo[i][bLocked] == 0) format(text, sizeof(text),"{FF6347}%s"color_lblue "\nОткрыто"color_white"\nID: {7CFC00}%d"color_white"\nВладелец: {7CFC00}%s"color_white"\nПродукты: {FF6347}%d/%d шт"color_lblue"\nЦена за 1 продукт: {7CFC00}$%d"color_white"\nЦена за вход: {7CFC00}$%d"color_white"\nЗайти: "color_lred"/enter", BizzInfo[i][bMessage], i, BizzInfo[i][bOwner], BizzInfo[i][bProducts], BizzInfo[i][bMaxProducts], BizzInfo[i][bPriceProd], BizzInfo[i][bEntranceCost]);
			AddStaticPickup(1239, 23, BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]);
		}
		BizzInfo[i][bText] = Create3DTextLabel(text, -1, BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]+1, 20.0, 0, 1);
		BizzInfo[i][bIcon] = CreateDynamicMapIcon(BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ], 56, -1, 0, -1, -1, 400.0);
	}
    printf("~ Загружено бизнесов - %i.", i);
	return 1;
}
stock UpdateBizz(i)
{
	new text[600];
	DestroyPickup(BizzInfo[i][bPickup]);
	if(BizzInfo[i][bOwned] == 0)
	{
 	format(text, sizeof(text),"{FF6347}%s"color_white"\nID: {7CFC00}%d"color_white"\nЦена: {7CFC00}$%d"color_white"\nУровень: {7CFC00}%d\n"color_white"Купить: "color_lred"/buybiz", BizzInfo[i][bMessage], i, BizzInfo[i][bBuyPrice], BizzInfo[i][bLevelNeeded]);
	BizzInfo[i][bPickup] = CreatePickup(1239, 23, BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]);
	}
	if(BizzInfo[i][bOwned] == 1)
	{
	if(BizzInfo[i][bLocked] == 1) format(text, sizeof(text),"{FF6347}%s"color_lred"\nЗакрыто"color_white"\nID: {7CFC00}%d"color_white"\nВладелец: {7CFC00}%s"color_white"\nПродукты: {FF6347}%d/%d шт"color_lblue"\nЦена за 1 продукт: {7CFC00}$%d", BizzInfo[i][bMessage], i, BizzInfo[i][bOwner], BizzInfo[i][bProducts], BizzInfo[i][bMaxProducts], BizzInfo[i][bPriceProd]);
	else if(BizzInfo[i][bLocked] == 0) format(text, sizeof(text),"{FF6347}%s"color_lblue "\nОткрыто"color_white"\nID: {7CFC00}%d"color_white"\nВладелец: {7CFC00}%s"color_white"\nПродукты: {FF6347}%d/%d шт"color_lblue"\nЦена за 1 продукт: {7CFC00}$%d"color_white"\nЦена за вход: {7CFC00}$%d"color_white"\nЗайти: "color_lred"/enter", BizzInfo[i][bMessage], i, BizzInfo[i][bOwner], BizzInfo[i][bProducts], BizzInfo[i][bMaxProducts], BizzInfo[i][bPriceProd], BizzInfo[i][bEntranceCost]);
	BizzInfo[i][bPickup] = CreatePickup(1239, 23, BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]);
	}
	Update3DTextLabelText(BizzInfo[i][bText], -1, text);
}

stock SaveBizz(idbiz)
{
	if(idbiz == -1) for(idbiz = 0; idbiz < sizeof(BizzInfo); idbiz++) SaveBizz(idbiz);
	else
	{
		new fub[500];
		format(fub, sizeof(fub),"UPDATE `"TABLE_BIZ"` SET `bEntranceX` = '%f', `bEntranceY` = '%f', `bEntranceZ` = '%f', `bExitX` = '%f', `bExitY` = '%f', `bExitZ` = '%f',\
		`bOwner` = '%s', `bExtortion` = '%s', `bMessage` = '%s', `bOwned` = '%d',\
		`bBuyPrice` = '%d', `bEntranceCost` = '%d', `bTill` = '%d', `bProducts` = '%d', `bMaxProducts` = '%d', `bPriceProd` = '%d', `bLocked` = '%d', `bInterior` = '%d', `bLevelNeeded` = '%d' WHERE `ID` = '%d'",
		BizzInfo[idbiz][bEntranceX], BizzInfo[idbiz][bEntranceY], BizzInfo[idbiz][bEntranceZ], BizzInfo[idbiz][bExitX],
		BizzInfo[idbiz][bExitY], BizzInfo[idbiz][bExitZ], BizzInfo[idbiz][bOwner], BizzInfo[idbiz][bExtortion], BizzInfo[idbiz][bMessage], BizzInfo[idbiz][bOwned],
		BizzInfo[idbiz][bBuyPrice], BizzInfo[idbiz][bEntranceCost], BizzInfo[idbiz][bTill], BizzInfo[idbiz][bProducts], BizzInfo[idbiz][bMaxProducts], BizzInfo[idbiz][bPriceProd], BizzInfo[idbiz][bLocked], BizzInfo[idbiz][bInterior], BizzInfo[idbiz][bLevelNeeded], idbiz);
		mysql_tquery(cH, fub, "", "");
	}
	return 1;
}

Возникли маленькие неполадки, устранил. Появляется пикап, 3д текст, команды даже работают.... Но вот в чем дело, я не прочитал, как команды привязывать к базе, чтобы она вот делала запрос и апдейт, на словах понимаю, на деле сообразить не могу(.
Я так понимаю из-за того, что я ее не привязал, выскакивают ошибки в логе:
Код:
[23:07:17] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'ID' in 'where clause'
[23:07:26] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'ID' in 'where clause'
[23:07:28] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'ID' in 'where clause'
[23:07:28] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'ID' in 'where clause'
[23:07:47] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'ID' in 'where clause'
[23:07:52] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'ID' in 'where clause'
[23:07:59] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'ID' in 'where clause'
[23:10:10] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'ID' in 'where clause'
[23:10:23] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'ID' in 'where clause'
[23:10:27] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'ID' in 'where clause'

Ну и такая, побочная проблема, почему-то при загрузке бизов, 3д текст работает как в строчке
PHP:
if(BizzInfo[i][bOwned] == 1)
, хотя владельцев в таблице нет...

Для примера, может кто-то подправит команду /asellbiz:

PHP:
	else if(strcmp(cmd, "/asellbiz", true) == 0)
	{
	    new i;
		if(PlayerInfo[playerid][pAdmin] < 8) return send(playerid, col_grad1, "* Ты не можешь использовать эту команду.");
		if(sscanf(params, "d", params[0])) return send(playerid, col_grad1, "Используй: /asellbiz [bizid]");
		if(params[0] > sizeof(BizzInfo)) return send(playerid, col_grey, "* Неверный ID бизнеса!");
		BizzInfo[params[0]][bLocked] = 1;
		BizzInfo[params[0]][bOwned] = 0;
		strmid(BizzInfo[params[0]][bOwner], "The State", 0, strlen("The State"), 255);
		strmid(BizzInfo[params[0]][bExtortion], "—", 0, strlen("—"), 255);
		PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
		format(string, sizeof(string), "~w~You have sold the Business");
		GameTextForPlayer(playerid, string, 10000, 3);
		SaveBizz(i);
		return 1;
	} // ДАДА, перейду на ZCMD когда начну заниматься командами....


Скину еще скриншотик таблицы, на всякий случай.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу