Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 3 из 3
  1. #1
    Аватар для Snoop_Dog
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2014
    Сообщений
    65
    Репутация:
    0 ±

    Проблема с недвижимостью

    Всем Здравствуйте!
    Вообщем сделал бизнес нефтевышка но есть проблема, когда создаю нефтевышку через команду(все записывается в БД).
    Создал 2 нефтевышки, в БД у переменной "ID" Стоить Дополнение AUTO_INCREMENT и нефтевышки записываются с "ID" = 1(а не с 0)
    Но когда запускаю мод подходя к этим нефтевышкам показывает с 0 "ID".

    Купив нефтевышку с ID = 0 не чего не происходит,
    Купив нефтевышку с ID = 1 все записывается в БД как надо, но после захода на сервер подходя к нефтевышки с ID = 1 она продается а у нефтевышки с ID = 0 Показывает Имя игрока который купил,

    В БД записывается все правильно с ID = 1

    Убрав AUTO_INCREMENT с переменной ID все создается но когда создаёшь одну нефтевышку она записывается,но создав 2-ю в логе выходит такая вот ошибка - Duplicate entry '0' for key 'PRIMARY'
    И в БД записывается только одна нефтевышка это с ID = 0.

    Как решить проблему не подскажите?

  2. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Всё очень просто, оставьте AUTO_INCREMENT и при загрузке данных из базы считывайте в 0-й слот данные из 1-й записи в БД, в 1-й слот - из 2-й и т.д.
    Покажу на примере двух массивов:
    PHP код:
    // исходный массив
    new a[11] = {012345678910}; // 11 ячеек
    // в массив B нужно скопировать данные из массива A, не считая 0-й ячейки:
    new b[sizeof(a)-1]; // 10 ячеек
    for(new i=0i<sizeof(b); ++i)
        
    b[i] = a[i+1];
    // теперь выведем содержимое массива B:
    for(new i=0i<sizeof(b); ++i)
        
    printf("B[%d] = %d"ib[i]);
    // будут выведены числа от 1 до 10, число 0 не попадёт в B 
    Надеюсь, уловили идею.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  3. 2 пользователя(ей) сказали cпасибо:
    Quman (18.05.2015) Snoop_Dog (18.05.2015)
  4. #3
    Аватар для Snoop_Dog
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2014
    Сообщений
    65
    Репутация:
    0 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Всё очень просто, оставьте AUTO_INCREMENT и при загрузке данных из базы считывайте в 0-й слот данные из 1-й записи в БД, в 1-й слот - из 2-й и т.д.
    Покажу на примере двух массивов:
    PHP код:
    // исходный массив
    new a[11] = {012345678910}; // 11 ячеек
    // в массив B нужно скопировать данные из массива A, не считая 1-й ячейки:
    new b[sizeof(a)-1]; // 10 ячеек
    for(new i=0i<sizeof(b); ++i)
        
    b[i] = a[i+1];
    // теперь выведем содержимое массива B:
    for(new i=0i<sizeof(b); ++i)
        
    printf("B[%d] = %d"ib[i]);
    // будут выведены числа от 1 до 10, число 0 не попадёт в B 
    Надеюсь, уловили идею.
    Все получилось. Спасибо!

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •