 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[Решено] [MYSQL] Нужна помощь с системой машин
| |
| Kirja | Дата: Понедельник, 19.12.2011, 23:08 | Сообщение # 1 |
|
Новенький
Группа:
Продвинутые
Сообщений: 35
Награды: 1
Город: Tallinn
Репутация: 5
Замечания: 0%
Статус: 
| Всем привет!
Кто может помочь переделать файловую систему личных авто на mysql? А точнее переписать паблик загрузки авто из mysql: Code public LoadCar() { new arrCoords[13][64]; new strFromFile2[256]; new File: file = fopen("cars.cfg", io_read); if (file) { new idx = 0; while (idx < sizeof(CarInfo)) { fread(file, strFromFile2); split(strFromFile2, arrCoords, ','); CarInfo[idx][cModel] = strval(arrCoords[0]); CarInfo[idx][cLocationx] = floatstr(arrCoords[1]); CarInfo[idx][cLocationy] = floatstr(arrCoords[2]); CarInfo[idx][cLocationz] = floatstr(arrCoords[3]); CarInfo[idx][cAngle] = floatstr(arrCoords[4]); CarInfo[idx][cColorOne] = strval(arrCoords[5]); CarInfo[idx][cColorTwo] = strval(arrCoords[6]); strmid(CarInfo[idx][cOwner], arrCoords[7], 0, strlen(arrCoords[7]), 255); strmid(CarInfo[idx][cDescription], arrCoords[8], 0, strlen(arrCoords[8]), 255); CarInfo[idx][cValue] = strval(arrCoords[9]); CarInfo[idx][cOwned] = strval(arrCoords[10]); CarInfo[idx][cLock1] = strval(arrCoords[11]); CarInfo[idx][cNumber] = strval(arrCoords[12]); printf("CarInfo: %d Owner:%s",idx,CarInfo[idx][cOwner]); idx++; } } return 1; } И паблик сохранения авто в mysql: Code public OnPropUpdate() { new idx; new File: file2; while (idx < sizeof(CarInfo)) { new coordsstring[256]; format(coordsstring, sizeof(coordsstring), "%d,%f,%f,%f,%f,%d,%d,%s,%s,%d,%d,%d,%d\n", CarInfo[idx][cModel],// CarInfo[idx][cLocationx],// CarInfo[idx][cLocationy],// CarInfo[idx][cLocationz],// CarInfo[idx][cAngle],// CarInfo[idx][cColorOne],// CarInfo[idx][cColorTwo],// CarInfo[idx][cOwner],// CarInfo[idx][cDescription],// CarInfo[idx][cValue],// CarInfo[idx][cOwned],// CarInfo[idx][cLock], CarInfo[idx][cNumber]); if(idx == 0) { file2 = fopen("cars.cfg", io_write); } else { file2 = fopen("cars.cfg", io_append); } fwrite(file2, coordsstring); idx++; fclose(file2); } return 1; }
С меня + за помощь!
|
| |
|
|
| Fus1 | Дата: Вторник, 20.12.2011, 02:39 | Сообщение # 2 |
|
Группа:
Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус: 
| не знаю, в mysql не разбираюсь вообще, ну вот пример как я понял
Code stock bool: LoadCars() { new idx, Field[32], Data[512]; idx = 2; mysql_query("SELECT * FROM `cars`"); mysql_store_result(); while(mysql_fetch_row_format(Data, "|")) { if(idx > sizeof(CarInfo)) break; mysql_fetch_field_row(Field, "ID"); Carinfo[idx][ID] = strval(Field); idx++; } mysql_free_result(); printf("Cars Load: %d", idx-2); return true; }
// Сохранение авто Code stock bool: SaveCars(const carid) { new string[512]; format(string, sizeof(string), "UPDATE `cars` SET `Model`=%d,\", CarInfo[carid][cModel]); mysql_query(string); return true; }
|
| |
|
|
| Kirja | Дата: Вторник, 20.12.2011, 10:37 | Сообщение # 3 |
|
Новенький
Группа:
Продвинутые
Сообщений: 35
Награды: 1
Город: Tallinn
Репутация: 5
Замечания: 0%
Статус: 
| уж слишком маленький код на мой взгляд, мне кажется надо чуть по другому делать.
|
| |
|
|
| Fus1 | Дата: Вторник, 20.12.2011, 11:08 | Сообщение # 4 |
|
Группа:
Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус: 
| Kirja, я тебе написал в пример по 1 функции, остальные переменные добавляй сам.
|
| |
|
|
| IInkvizitor | Дата: Вторник, 20.12.2011, 11:50 | Сообщение # 5 |
|
Советчик
Группа:
I'm V.I.P.
Сообщений: 1177
Награды: 7
Город: Санкт-Петербург
Репутация: 493
Замечания: 0%
Статус: 
| Чисто теоретически- открытие файла заменить на соеденение с базой, чтение строки на выборку, изменение или добавление на запросы с UPDATE и INSERT. Не понимаю, в чем сложность?
|
| |
|
|
| Kirja | Дата: Вторник, 20.12.2011, 13:18 | Сообщение # 6 |
|
Новенький
Группа:
Продвинутые
Сообщений: 35
Награды: 1
Город: Tallinn
Репутация: 5
Замечания: 0%
Статус: 
| Fus1, кстати, почему idx = 2 если у меня 0 было?
|
| |
|
|
| Imperealist | Дата: Вторник, 20.12.2011, 15:53 | Сообщение # 7 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 205
Награды: 10
Город: Санкт-Петербург
Репутация: 518
Замечания: 100%
Статус: 
| Если вы не умеете работать с mysql, зачем мод переводить на работу с базой данных?
Code public LoadCar() { mysql_query("SELECT * FROM `vehicles`"); mysql_store_result(); if(mysql_num_rows()) { new result[512], i = 0; while(mysql_fetch_row_format(result, "|")) { sscanf(result, "p<|>iffffiis[32]s[32]iiii", CarInfo[i][cModel], CarInfo[i][cLocationx], CarInfo[i][cLocationy], CarInfo[i][cLocationz], CarInfo[i][cAngle], CarInfo[i][cColorOne], CarInfo[i][cColorTwo], CarInfo[i][cOwner], CarInfo[i][cDescription], CarInfo[i][cValue], CarInfo[i][cOwned], CarInfo[i][cLock1], CarInfo[i][cNumber]); printf("CarInfo: %d Owner:%s", i, CarInfo[i][cOwner]); i++; mysql_next_row(); } mysql_free_result(); } else print("The table is empty!"); return 1; }
Soviet Connection - open!
  
|
| |
|
|
| Kirja | Дата: Вторник, 20.12.2011, 17:27 | Сообщение # 8 |
|
Новенький
Группа:
Продвинутые
Сообщений: 35
Награды: 1
Город: Tallinn
Репутация: 5
Замечания: 0%
Статус: 
| Imperealist, пытаюсь понять что и как работает, если не сложно, опиши пожалуйста функции, что и как работает.
|
| |
|
|
| Imperealist | Дата: Вторник, 20.12.2011, 19:00 | Сообщение # 9 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 205
Награды: 10
Город: Санкт-Петербург
Репутация: 518
Замечания: 100%
Статус: 
| Quote (Imperealist) mysql_query Отправляет запрос базе данных. Quote (Imperealist) mysql_store_result Получает и запоминает результат. Quote (Imperealist) mysql_num_rows Возвращает кол-во строк которые вернула БД по запросу. Quote (Imperealist) mysql_fetch_row_format(result, "|") записывает текущую строку в result, разделяя поля символом '|'. Quote (Imperealist) mysql_next_row(); Переходит на следующую строку.
Что происходит в моем коде: Отправляем запрос "SELECT * FROM `vehicles`" - который получает всю таблицу vehicles.
Далее проверяем если он вернул хотя бы одну строку, то делаем цикл, который будет проходить по всем полям.
sscanf - разделяет всю строку и записывает все значения в необходимые поля.Добавлено (20.12.2011, 19:00) ---------------------------------------------
Quote (Imperealist) разделяет всю строку и записывает все значения в необходимые поля. разделяет всю строку и записывает все значения в необходимые переменные.*
Soviet Connection - open!
  
|
| |
|
|
| Kirja | Дата: Вторник, 20.12.2011, 19:17 | Сообщение # 10 |
|
Новенький
Группа:
Продвинутые
Сообщений: 35
Награды: 1
Город: Tallinn
Репутация: 5
Замечания: 0%
Статус: 
| как я понял в sscanf i = int, s = string и f = float верно?
|
| |
|
|
| Imperealist | Дата: Вторник, 20.12.2011, 19:25 | Сообщение # 11 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 205
Награды: 10
Город: Санкт-Петербург
Репутация: 518
Замечания: 100%
Статус: 
| Kirja, да, там очень много особеннстей и возможностей форматирования. Подробнее: http://forum.sa-mp.com/showthread.php?t=120356
Soviet Connection - open!
  
|
| |
|
|
| Kirja | Дата: Вторник, 20.12.2011, 22:47 | Сообщение # 12 |
|
Новенький
Группа:
Продвинутые
Сообщений: 35
Награды: 1
Город: Tallinn
Репутация: 5
Замечания: 0%
Статус: 
| у меня проблема, я пользуюсь библиотекой a_sampmysql.inc и там нету mysql_next_row(); и mysql_fetch_row_format(result, "|") , чем их можно заменить?
|
| |
|
|
| Imperealist | Дата: Вторник, 20.12.2011, 23:26 | Сообщение # 13 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 205
Награды: 10
Город: Санкт-Петербург
Репутация: 518
Замечания: 100%
Статус: 
| Kirja, Скачать нормальный плагин от Джи Стайла...
Soviet Connection - open!
  
|
| |
|
|
| Kirja | Дата: Вторник, 20.12.2011, 23:40 | Сообщение # 14 |
|
Новенький
Группа:
Продвинутые
Сообщений: 35
Награды: 1
Город: Tallinn
Репутация: 5
Замечания: 0%
Статус: 
| у меня и так плагин от g-stylez, у меня инклуды павно другие
|
| |
|
|
| Великс | Дата: Вторник, 20.12.2011, 23:52 | Сообщение # 15 |
|
Мастер джэдай
Группа:
Модераторы
Сообщений: 3931
Награды: 287
Город: Мухосранск
Репутация: 8429
Замечания: 0%
Статус: 
| Quote (Kirja) у меня и так плагин от g-stylez, у меня инклуды павно другие Инклуд один, а плагин другой?.. Извращенцы =\
[cut=freestyle] ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ , СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ, ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ, ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ. УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА. ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ. ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ. ЛЕНАРУ ДАЙ УМА И ЛЕНУ НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ © Хасан [/cut]
|
| |
|
|
|
 |
|
 | |
| |
|