|
Help me[MySQL]
|
|
| Mckenzy | Дата: Суббота, 29.09.2012, 20:08 | Сообщение # 1 |
|
Советчик
Группа:
I'm V.I.P.
Сообщений: 1212
Награды: 130
Город: Ярославль
Репутация: 2125
Замечания: 80%
Статус: 
| Вообщем суть такова, пишу команду удаления авто, которая будет смещать все ID в таблице на -1, т.е допустим идут машинки по порядку (auto_increment) 1 2 3 4 5, и если я удаляю 3, то последующие, т.е 4 и 5 смещаются на -1. Вот код, до которого додумался, но как смещать ид на -1, не довариваю. Code if(strcmp(cmd, "/deletecar", true) == 0) { new destroycar, sql[256], carid; destroycar = GetPlayerVehicleID(playerid); carid = GetPlayerVehicleID(playerid); if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER) { DestroyVehicle(destroycar); for( new i = CarInfo[carid][id]; i < MAXVEHICLES; i++ ) { format(sql, sizeof(sql), "DELETE FROM `carinfo` WHERE `ID` = %d LIMIT 1", CarInfo[carid][id]); return mysql_query(sql); } } }
|
| |
|
|
| Dreven | Дата: Суббота, 29.09.2012, 20:28 | Сообщение # 2 |
|
Гуру
Группа:
Продвинутые
Сообщений: 1096
Награды: 205
Город: od.ua
Репутация: 1099
Замечания: 0%
Статус: 
| Mckenzy, автоинкримент вроде нельзя изменить, видел кто-то делал сток чтобы находить свободный id
www.samp-rpg.com
|
| |
|
|
| FiLE | Дата: Суббота, 29.09.2012, 21:42 | Сообщение # 3 |
|
Группа:
Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус: 
| Quote (Mckenzy) смещать все ID в таблице на -1 Я бы сделал так: после того, как удаляем запись о машине, делаем следующее...: узнаем сколько строк в таблице => циклом проходим и выбираем те тачки у которых ID больше чем CarInfo[carid][id] => и выбранную запись апдатим id-1. Потом нужно же еще все записи CarInfo[carid][id] тоже апдатить в моде (обновить).
|
| |
|
|
| Dreven | Дата: Суббота, 29.09.2012, 22:06 | Сообщение # 4 |
|
Гуру
Группа:
Продвинутые
Сообщений: 1096
Награды: 205
Город: od.ua
Репутация: 1099
Замечания: 0%
Статус: 
| FiLE, даже если ты поставишь ид 4, автоинкримент поставит столько сколько он считает нужным xD вообщем ты понял =D
www.samp-rpg.com
|
| |
|
|
| FiLE | Дата: Суббота, 29.09.2012, 22:36 | Сообщение # 5 |
|
Группа:
Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус: 
| Dreven, ты пробовал изменять иды в таблицах через phpmyadmin? Попробуй. В теме идет речь о смещении уже существующих записей. Если создавать запись, то это тоже можно учесть и установить нужный ид, путем update записи.
Сообщение отредактировал FiLE - Суббота, 29.09.2012, 22:37 |
| |
|
|
| Mckenzy | Дата: Суббота, 29.09.2012, 22:46 | Сообщение # 6 |
|
Советчик
Группа:
I'm V.I.P.
Сообщений: 1212
Награды: 130
Город: Ярославль
Репутация: 2125
Замечания: 80%
Статус: 
| На оффе говорят, что категорически запрещается изменять инкремент, может нарушиться структура БД O_o
|
| |
|
|
| [RD]Chez | Дата: Суббота, 29.09.2012, 23:49 | Сообщение # 7 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| а зачем тебе использовать уникальный ид для динамических расчетов? используй many to many и one to manyДобавлено (29.09.2012, 23:49) --------------------------------------------- да и вообще в базе должны храниться данные статические а на сервере в массиве зранить как ключ массива ид машины а одно из полей значения по ключу будет хранить инкрементный ид
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
| IInkvizitor | Дата: Воскресенье, 30.09.2012, 03:00 | Сообщение # 8 |
|
Советчик
Группа:
I'm V.I.P.
Сообщений: 1177
Награды: 7
Город: Санкт-Петербург
Репутация: 493
Замечания: 0%
Статус: 
| О боже... Обходить всю таблицу чтобы изменить поле?
|
| |
|
|
| Mckenzy | Дата: Воскресенье, 30.09.2012, 16:17 | Сообщение # 9 |
|
Советчик
Группа:
I'm V.I.P.
Сообщений: 1212
Награды: 130
Город: Ярославль
Репутация: 2125
Замечания: 80%
Статус: 
| IInkvizitor, смотри какая ситуация. На сервере, ид у машины равен 2, и при апдейте в дебаге WHERE `ID` = 2, вроде все хорошо. Но стоит допустим из трех тачек удалить одну (из трех вторую), то следующая созданная занимает ее место на сервере, а в таблице уже 4 ид (ибо инкремент пробелы в порядковой последовательности не забивает, а так и херачит +1). Как тут быть?
|
| |
|
|
| zEsc | Дата: Воскресенье, 30.09.2012, 16:41 | Сообщение # 10 |
|
Global Elite
Группа:
Ангел Хранитель
Сообщений: 896
Награды: 20
Репутация: 856
Замечания: 0%
Статус: 
| Mckenzy, не используи инкримент например, сам формируй ид
|
| |
|
|
| Mckenzy | Дата: Воскресенье, 30.09.2012, 16:50 | Сообщение # 11 |
|
Советчик
Группа:
I'm V.I.P.
Сообщений: 1212
Награды: 130
Город: Ярославль
Репутация: 2125
Замечания: 80%
Статус: 
| Escalante, ну а как например?
|
| |
|
|
| zEsc | Дата: Воскресенье, 30.09.2012, 17:27 | Сообщение # 12 |
|
Global Elite
Группа:
Ангел Хранитель
Сообщений: 896
Награды: 20
Репутация: 856
Замечания: 0%
Статус: 
| создаёшь переменную в массиве, когда в массив добавляешь инфо о тачке, приравниваешь её еденице, а потом при сохранении смещаешь. Пишу с телефона, мог неправильно выразится Добавлено (30.09.2012, 17:27) --------------------------------------------- Посмотри валакас тракер там так реализовано
|
| |
|
|
| Mckenzy | Дата: Воскресенье, 30.09.2012, 20:09 | Сообщение # 13 |
|
Советчик
Группа:
I'm V.I.P.
Сообщений: 1212
Награды: 130
Город: Ярославль
Репутация: 2125
Замечания: 80%
Статус: 
| Quote (Escalante) Посмотри валакас тракер там так реализовано Да где ты там такое увидел?
|
| |
|
|
| Kw33ck | Дата: Воскресенье, 30.09.2012, 21:33 | Сообщение # 14 |
|
Местный
Группа:
Продвинутые
Сообщений: 620
Награды: 8
Город: Empire Bay
Репутация: 1405
Замечания: 60%
Статус: 
| Mckenzy, если ты непротив, я немножко пооффтоплю. Почитал тут твой лог разработки и у меня возник вопрос, нафига ты переписываешь заного уже изобретенные системы? Смысл писать моды с нуля был не в том, что ты переписывал код вручную, а в том, что изобреталось нечто новое. Ты просто себя переутруждаешь лишний раз и бестолку.
>>> Внимание: GTA 5 Online на пиратке! <<<
>>> Внимание: Mafia 2 Multiplayer ВКонтакте! <<<
Мои завистники: 1 место - Eakwarp (постоянная зависть в сторону моих успехов и уровня развития) - Стаж > 4х лет! 2 место - PeRaN (подлиза, признавшая моё превосходство, но не желающая что-либо исправлять по моим советам) - Стаж > 3х лет! 3 место - Тут можешь оказаться ты!
|
| |
|
|
| Mckenzy | Дата: Воскресенье, 30.09.2012, 21:51 | Сообщение # 15 |
|
Советчик
Группа:
I'm V.I.P.
Сообщений: 1212
Награды: 130
Город: Ярославль
Репутация: 2125
Замечания: 80%
Статус: 
| Kw33ck, уникальность проекта будет заключаться немного в другом. Простота и минимализация основных систем (дома, бизнесы и машины) это даже хорошо скорее, чем плохо. А вырезать из чужих модов я все равно ничего не буду, легче самому.
Сообщение отредактировал Mckenzy - Воскресенье, 30.09.2012, 21:51 |
| |
|
|