PDA

Просмотр полной версии : [Вопрос] Проблема с загрузкой домов.



Bady
06.01.2015, 04:43
Доброй ночи пользователи p-p.
Пишу для своего мода динамическую сис домов, вроде все готово, но есть 1 проблемка, создая дом всё появляется, когда рестарчу сервер
дома этого нету.
В логах mysql появляется это:

[02:26:45] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `hID` = '0'' at line 1
[02:26:45] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `hID` = '1'' at line 1
[02:26:53] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `hID` = '0'' at line 1
[02:26:53] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `hID` = '1'' at line 1

Выявил что это после срабатывания стока: SaveHouse.
Вот вам создание дома:

case 6:
{
if(response)
{
new Float:x[3], str[32];
GetPlayerPos(playerid, x[0], x[1], x[2]);
GetPVarString(playerid, "h_name", str, 32);
TotalHouse++;
HouseInfo[TotalHouse][hID] = TotalHouse;
HouseInfo[TotalHouse][hX] = x[0];
HouseInfo[TotalHouse][hY] = x[1];
HouseInfo[TotalHouse][hZ] = x[2];
HouseInfo[TotalHouse][hPrice] = GetPVarInt(playerid, "h_price");
HouseInfo[TotalHouse][hInterior] = GetPVarInt(playerid, "h_int");
HouseInfo[TotalHouse][hVirtWorld] = TotalHouse;
strmid(HouseInfo[TotalHouse][hAddress], str, 0, 32, 32);
strmid(HouseInfo[TotalHouse][hOwner], "None", 0, 5, 5);
SaveHouse();
HouseInfo[TotalHouse][hVirtWorld] = CreatePickup(19470,23,x[0],x[1],x[2],0);
format(LString, 128, "Продаётся\nАндрес: %s\nЦена: $%d", HouseInfo[TotalHouse][hAddress], HouseInfo[TotalHouse][hPrice]);
HouseInfo[TotalHouse][hText] = Create3DTextLabel(LString, 0xFFFFFFFF, x[0], x[1], x[2] + 0.5, 10.0, 0, 0);
GameTextForPlayer(playerid, "~w~House ~g~Created",100,1);
DeletePVar(playerid, "h_price"), DeletePVar(playerid, "h_name"), DeletePVar(playerid, "h_int");
}
else DeletePVar(playerid,"h_price"), DeletePVar(playerid, "h_name"), DeletePVar(playerid, "h_int");
}
Вот сток сохранение домов:

stock SaveHouse()
{
new query[600];
new temp[128];
for(new i = 0; i <= TotalHouse; i++)
{
mysql_format(mysql_variable, query, sizeof(query), "UPDATE `house` SET ");
format(temp,sizeof(temp),"`hAddress` = '%s',",HouseInfo[i][hAddress]);strcat(query,temp,sizeof(query));
format(temp,sizeof(temp),"`hOwner` = '%s',",HouseInfo[i][hOwner]);strcat(query,temp,sizeof(query));
format(temp,sizeof(temp),"`hX` = '%f',",HouseInfo[i][hX]);strcat(query,temp,sizeof(query));
format(temp,sizeof(temp),"`hY` = '%f',",HouseInfo[i][hY]);strcat(query,temp,sizeof(query));
format(temp,sizeof(temp),"`hZ` = '%f',",HouseInfo[i][hZ]);strcat(query,temp,sizeof(query));
format(temp,sizeof(temp),"`hInterior` = '%d',",HouseInfo[i][hInterior]);strcat(query,temp,sizeof(query));
format(temp,sizeof(temp),"`hVirtWorld` = '%d',",HouseInfo[i][hVirtWorld]);strcat(query,temp,sizeof(query));
format(temp,sizeof(temp),"`hPrice` = '%d',",HouseInfo[i][hPrice]);strcat(query,temp,sizeof(query));
format(temp,sizeof(temp),"`hLock` = '%d',",HouseInfo[i][hLock]);strcat(query,temp,sizeof(query));
format(temp,sizeof(temp),"WHERE `hID` = '%i'",HouseInfo[i][hID]);strcat(query,temp,sizeof(query));
mysql_function_query(mysql_variable, query, true, "", "");
}
}

Mr.DeViLsS
06.01.2015, 04:52
попробуй так:
вместо:

format(temp,sizeof(temp),"WHERE `hID` = '%i'",HouseInfo[i][hID]);strcat(query,temp,sizeof(query));

вставь это:

format(temp,sizeof(temp),"WHERE `hID` = %i",HouseInfo[i][hID]);strcat(query,temp,sizeof(query));

$continue$
06.01.2015, 10:35
Запятую уберай, не ставиться она перед WHERE

Bady
07.01.2015, 17:30
попробуй так:
вместо:

format(temp,sizeof(temp),"WHERE `hID` = '%i'",HouseInfo[i][hID]);strcat(query,temp,sizeof(query));

вставь это:

format(temp,sizeof(temp),"WHERE `hID` = %i",HouseInfo[i][hID]);strcat(query,temp,sizeof(query));
твой варианть не правильный, по коду вижу!

Запятую уберай, не ставиться она перед WHERE

Ты идиот ? она там обязательна должна стаять! Извини за оскарбление.

Quman
07.01.2015, 18:03
твой варианть не правильный, по коду вижу!


Ты идиот ? она там обязательна должна стаять! Извини за оскарбление.

Друг, запятая перед WHERE не ставиться.

$continue$
07.01.2015, 18:53
твой варианть не правильный, по коду вижу!


Ты идиот ? она там обязательна должна стаять! Извини за оскарбление.

Да я идиот который знает что запятая перед WHERE не ставиться
Пример запроса на прямую из phpmyadmin, и учи ошибки в данном случий это ошибки синтаксические.


UPDATE `banktransfer` SET `ID_Expense`=[value-1],`expense_holder`=[value-2],`expense_name`=[value-3],`expense_money`=[value-4],`pincode`=[value-5] WHERE 1


Идиот дак идиот.

Bady
07.01.2015, 22:44
Да я идиот который знает что запятая перед WHERE не ставиться
Пример запроса на прямую из phpmyadmin, и учи ошибки в данном случий это ошибки синтаксические.


UPDATE `banktransfer` SET `ID_Expense`=[value-1],`expense_holder`=[value-2],`expense_name`=[value-3],`expense_money`=[value-4],`pincode`=[value-5] WHERE 1


Идиот дак идиот.

Ладно, извини тогда. Про какую именно ты запятую думаешь?

$continue$
08.01.2015, 00:35
Ну блин сказал же перед WHERE


format(temp,sizeof(temp),"`hLock` = '%d'",HouseInfo[i][hLock]);strcat(query,temp,sizeof(query));

Замени строку и пробуй... Идиот же я :to_take_umbrage:

Bady
08.01.2015, 00:37
Ну блин сказал же перед WHERE


format(temp,sizeof(temp),"`hLock` = '%d'",HouseInfo[i][hLock]);strcat(query,temp,sizeof(query));

Замени строку и пробуй... Идиот же я :to_take_umbrage:

Я про другую подумал, извини, запятой не заметил. Извини за наезд.