13:17
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
        
Зацените (13)
Max 24.02.2017 22:08
Подвиcание SA-MP (2)
Max 20.02.2017 21:57
MYSQL Донат (2)
JasonGordon 08.02.2017 10:39
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 11
Модератор форума: AXE, Weddew 
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » чудеса с mysql запросами
чудеса с mysql запросами
_BigSm0ke_Дата: Четверг, 25.07.2013, 00:29 | Сообщение # 1
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Это кароче какой-то бред, я не пойму в чем прикол.
Есть значит 2 таблицы. accounts - собсно аккаунты и friendlist - список друзей игроков.

Есть функция сохранения аккаунта:

[pwn]

SaveAccount(playerid)
{
if(PlayerAccount[playerid][aLogged] == true && !IsPlayerNPC(playerid))
{
CheckMySQLConnection();
new
query[1024],query1[1024],query2[1024],query22[512],
sqlname[MAX_PLAYER_NAME],
sqlpass[64],
sqlpost[24];
mysql_real_escape_string(PlayerAccount[playerid][aName], sqlname);
mysql_real_escape_string(PlayerAccount[playerid][aPassword], sqlpass);
mysql_real_escape_string(PlayerAccount[playerid][aPost], sqlpost);
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
PlayerAccount[playerid][aX]=X;
PlayerAccount[playerid][aY]=Y;
PlayerAccount[playerid][aZ]=Z;
PlayerAccount[playerid][aInt]=GetPlayerInterior(playerid);
PlayerAccount[playerid][aWorld]=GetPlayerVirtualWorld(playerid);
format(query, sizeof(query), "UPDATE `accounts` SET `Nickname` = '%s',`Password` ='%s',`CharInfo`='%d',`HP`='%d',`CP`='%d',`Skin`='%d',`Sex`='%d',`Age`='%d',`Country`='%d',`Int`='%d',`World`='%d',`Money`='%d',`BMoney`='%d ',`PMoney`='%d',`Admin`='%d',`Phone`='%d',`House`='%d',`Hotel`='%d',`Biz`='%d',`Car1`='%d',`Car2`='%d',`Car3`='%d',",
sqlname,
sqlpass,
PlayerAccount[playerid][aCharInfo],
PlayerAccount[playerid][aHP],
PlayerAccount[playerid][aCP],
PlayerAccount[playerid][aSkin],
PlayerAccount[playerid][aSex],
PlayerAccount[playerid][aAge],
PlayerAccount[playerid][aCountry],
PlayerAccount[playerid][aInt],
PlayerAccount[playerid][aWorld],
PlayerAccount[playerid][aMoney],
PlayerAccount[playerid][aBMoney],
PlayerAccount[playerid][aPMoney],
PlayerAccount[playerid][aAdmin],
PlayerAccount[playerid][aPhone],
PlayerAccount[playerid][aHouse],
PlayerAccount[playerid][aHotel],
PlayerAccount[playerid][aBiz],
PlayerAccount[playerid][aCar1],
PlayerAccount[playerid][aCar2],
PlayerAccount[playerid][aCar3]);
format(query1, sizeof(query1), " `WCar`='%d',`FCar` = '%d',`Fraction` = '%d',`Post`='%s',`Rank`='%d',`Work`='%d',\
`PlayedTime`='%d',`PlayedSession`='%d',`LastOnline`='%d', `X` = '%f', `Y` = '%f', `Z` = '%f',\
`FermerSkill`='%d', `CarierSkill`='%d',`TruckerSkill`='%d',`LawyerSkill`='%d',`DetectiveSkill`='%d',`TaxiSkill`='%d',`SportSkill`='%d',`MechSkill`='%d' WHERE `ID` = '%d'",
PlayerAccount[playerid][aWCar],
PlayerAccount[playerid][aFCar],
PlayerAccount[playerid][aFraction],
sqlpost,
PlayerAccount[playerid][aRank],
PlayerAccount[playerid][aWork],
PlayerAccount[playerid][aPlayedTime],
PlayerAccount[playerid][aPlayedSession],
PlayerAccount[playerid][aLastOnline],
PlayerAccount[playerid][aX],
PlayerAccount[playerid][aY],
PlayerAccount[playerid][aZ],
PlayerAccount[playerid][aFermerSkill],
PlayerAccount[playerid][aCarierSkill],
PlayerAccount[playerid][aTruckerSkill],
PlayerAccount[playerid][aLawyerSkill],
PlayerAccount[playerid][aDetectiveSkill],
PlayerAccount[playerid][aTaxiSkill],
PlayerAccount[playerid][aSportSkill],
PlayerAccount[playerid][aMechSkill],
PlayerAccount[playerid][aID]);
format(query2, sizeof(query2), "UPDATE `accounts` SET `Cigs`='%d',`Clock`='%d',`Rope`='%d',`Mask`='%d',`Hat`='%d',`Glass`='%d',`Kanistra`='%d', `Drugs`='%d',`Weapon`='%d',`Ammo`='%d',`DriverLic`='%d',`SailLic`='%d',`FlyLic`='%d',`WeaponLic`='%d',`TaxDebt`='%d',`Spawn`='%d',`InHouse`= '%d',`InBiz`='%d',`DrugTemp`='%d',`DrugLimit`='%d',`WeaponTemp`='%d',`WeaponLimit`='%d',`SportBlock`='%d',`PoliBlock`='%d',`WSkill1`='%d', ",
PlayerAccount[playerid][aCigs],
PlayerAccount[playerid][aClock],
PlayerAccount[playerid][aRope],
PlayerAccount[playerid][aMask],
PlayerAccount[playerid][aHat],
PlayerAccount[playerid][aGlass],
PlayerAccount[playerid][aKanistra],
PlayerAccount[playerid][aDrugs],
PlayerAccount[playerid][aWeapon],
PlayerAccount[playerid][aAmmo],
PlayerAccount[playerid][aDriverLic],
PlayerAccount[playerid][aSailLic],
PlayerAccount[playerid][aFlyLic],
PlayerAccount[playerid][aWeaponLic],
PlayerAccount[playerid][aTaxDebt],
PlayerAccount[playerid][aSpawn],
PlayerAccount[playerid][aInHouse],
PlayerAccount[playerid][aInBiz],
PlayerAccount[playerid][aDrugTemp],
PlayerAccount[playerid][aDrugLimit],
PlayerAccount[playerid][aWeaponTemp],
PlayerAccount[playerid][aWeaponLimit],
PlayerAccount[playerid][aSportBlock],
PlayerAccount[playerid][aPoliBlock],
PlayerAccount[playerid][aWSkill1]);
format(query22, sizeof(query22), "`WSkill2`='%d',`WSkill3`='%d',`WSkill4`='%d',`WSkill5`='%d',`WSkill6`='%d',`WSkill7`='%d',`WSkill8`='%d',`WSkill9`='%d',`WSkill10`='%d',`Al coLvl`='%d',`DrugLvl`='%d',`SmokeLvl`='%d',`BleedLvl`='%d',`BreakLvl`='%d',`Lomka`='%d' WHERE `ID` = '%d'",
PlayerAccount[playerid][aWSkill2],
PlayerAccount[playerid][aWSkill3],
PlayerAccount[playerid][aWSkill4],
PlayerAccount[playerid][aWSkill5],
PlayerAccount[playerid][aWSkill6],
PlayerAccount[playerid][aWSkill7],
PlayerAccount[playerid][aWSkill8],
PlayerAccount[playerid][aWSkill9],
PlayerAccount[playerid][aWSkill10],
PlayerAccount[playerid][aAlcoLvl],
PlayerAccount[playerid][aDrugLvl],
PlayerAccount[playerid][aSmokeLvl],
PlayerAccount[playerid][aBleedLvl],
PlayerAccount[playerid][aBreakLvl],
PlayerAccount[playerid][aLomka],
PlayerAccount[playerid][aID]);

strcat(query,query1,1024);
strcat(query2,query22,1024);
mysql_query(query);
mysql_query(query2);
printf("Save Account, ID: %s ",sqlname);
printf(" %s ",query);
printf(" %s ",query2);
SaveFriendList(playerid);
}
return 1;
}

[/pwn]

как видите после сохранения аккаунта вызывается функция сохранения френд листа, вот она:

[pwn]

SaveFriendList(playerid)
{
CheckMySQLConnection();
new query[1024];
format(query, sizeof(query), "UPDATE `friendlist` SET `f1`='%d',`f2`='%d',`f3`='%d',`f4`='%d',`f5`='%d',`f6`='%d',`f7`='%d',`f8`='%d',`f9`='%d',`f10`='%d',`f11`='%d',`f12`='%d',`f13`='%d',`f14`= '%d',`f15`='%d',`f16`='%d',`f17`='%d',`f18`='%d',`f19`='%d',`f20`='%d' WHERE `charid` = '%d'",
friendlist[playerid][0],friendlist[playerid][1],friendlist[playerid][2],friendlist[playerid][3],friendlist[playerid][4],friendlist[playerid][5],friendlist[playerid][6],
friendlist[playerid][7],friendlist[playerid][8],friendlist[playerid][9],friendlist[playerid][10],friendlist[playerid][11],friendlist[playerid][12],friendlist[playerid][13],
friendlist[playerid][14],friendlist[playerid][15],friendlist[playerid][16],friendlist[playerid][17],friendlist[playerid][18],friendlist[playerid][19],PlayerAccount[playerid][aID]);
mysql_query(query);
printf("%s",query);
return 1;
}

[/pwn]

Заявляю с полной уверенностью, что таблицы все нормальные, запросы как вручную через navicat так и из мода поотдельности хорошо сохраняют данные и никаких проблем не возникает.

Вот скажем сделаем простенькую команду:

[pwn]
CMD:saveaccount(playerid,params[])
{
SaveAccount(playerid);
SendClientMessage(playerid, COLOR_GREEN, " Аккаунт сохранен ");
return 1;
}
[/pwn]

так вот она при вводе в игре выдает "SERVER: UNKNOWN COMMAND"
а в окне сервера в результате функций printf выводятся запросы сохранения аккаунта, но запроса на сохранение френдлиста нету.

И сейчас самое главное:

Я ставлю SaveFriendList(playerid); в самое начало:

[pwn]
SaveAccount(playerid)
{
if(PlayerAccount[playerid][aLogged] == true && !IsPlayerNPC(playerid))
{
SaveFriendList(playerid);
CheckMySQLConnection();
new
query[1024],query1[1024],query2[1024],query22[512],
sqlname[MAX_PLAYER_NAME],
sqlpass[64],
.....далее как выше
[/pwn]

то все тут же работает нормально... в окне сервера выводит запросы и сохранения френдлиста и аккаунта, в игре в чате пишет "Аккаунт сохранен"...

чудеса.. в чем прикол?)



LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут


Сообщение отредактировал _BigSm0ke_ - Четверг, 25.07.2013, 00:30
AlcoholikДата: Четверг, 25.07.2013, 12:06 | Сообщение # 2
Группа: Администратор
Сообщений: 8284
Награды: 111
Город: Санкт-Петербург
Репутация: 5935
Статус:
Массив PlayerAccount какой размер имеет? И ещё, зачем так делать?
Цитата
strcat(query,query1,1024);
strcat(query2,query22,1024);

Обработай лучше в 4 раза запрос.
В логах ничего нет странного?



if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
_BigSm0ke_Дата: Суббота, 17.08.2013, 23:23 | Сообщение # 3
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Цитата (RoACh)
Массив PlayerAccount какой размер имеет?

MAX_PLAYERS
Цитата (RoACh)
Обработай лучше в 4 раза запрос.


кароче да вся проблема была в этих длинных строках query... сделал сохранение 4-мя последовательными запросами с одной query[1024];



LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут


Сообщение отредактировал _BigSm0ke_ - Воскресенье, 18.08.2013, 15:56
KlebitДата: Воскресенье, 18.08.2013, 18:02 | Сообщение # 4
Уверенный в себе
Группа: Пользователи
Сообщений: 265
Награды: 0
Город: None
Репутация: -31
Замечания: 60%
Статус:
зачем постоянно сохранять информацию, которая меняется от силы раз в день?
ZiGGiДата: Воскресенье, 18.08.2013, 19:57 | Сообщение # 5
Мастер джэдай
Группа: Продвинутые
Сообщений: 2650
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Вот это у тебя, чувак, таблицы, стыдно должно быть. Почитай основы проектирования баз данных, избежишь множества проблем.


Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
_BigSm0ke_Дата: Воскресенье, 18.08.2013, 22:38 | Сообщение # 6
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
А что именно не то с таблицами?)


LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут
ZiGGiДата: Вторник, 20.08.2013, 00:53 | Сообщение # 7
Мастер джэдай
Группа: Продвинутые
Сообщений: 2650
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Цитата (_BigSm0ke_)
А что именно не то с таблицами?)

Всё. WSkill1, WSkill2, etc., серьёзно?)
wiki: http://ru.wikipedia.org/wiki/Вторая_нормальная_форма



Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
_BigSm0ke_Дата: Вторник, 20.08.2013, 01:26 | Сообщение # 8
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Что-то я не совсем понял, если честно =) WSkill1...WSKill10 - уровни владения оружием weapontype... а что не так? Типа можно инфу о владении всеми оружиями запихнуть в 1 ячейку?) Или я опять что-то не так понял...


LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут
AlcoholikДата: Вторник, 20.08.2013, 23:08 | Сообщение # 9
Группа: Администратор
Сообщений: 8284
Награды: 111
Город: Санкт-Петербург
Репутация: 5935
Статус:
_BigSm0ke_, можно всю таблицу запихнуть в одну ячейку, толку от этого не прибудет
ZiGGi, Если бы эти вещи писали бы человеческим языком, я бы их читал, однако пишут как раз очень убого, что не хочется читать, и в универе читали так-же, поэтому никто не ходил. Расскажи мне, что ты имеешь в виду.



if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
WeddewДата: Понедельник, 26.08.2013, 19:21 | Сообщение # 10
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
Не актуально. Closed



www.weddew-shop.ru
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » чудеса с mysql запросами
Страница 1 из 11
Поиск:





 


 


 
Хостинг от uCoz SAMP-RUS.COM