PDA

Просмотр полной версии : [Вопрос] Проверка на то если ли данные [MySQL]



Paradox
12.05.2020, 23:57
Доброе время суток.

В общем такой вот вопрос, пишу системы актеров, домов и т. д.
Суть в чем, поскольку системы динамические, все добавляется из игры.
Так вот, как правильнее будет сделать проверку на то, есть ли уже в базе данные.

Что бы не было такого, что ID 1 есть в базе и ты с этим же ID'ом создал еще одного актера, который по сути будет только в игре,
в консоле же будет ошибка о том что в базе данных занят уже этот ID.

В общем, как быть?

Версия MySQL R39-6.

Pawn.Dima
14.05.2020, 18:42
Через iterator тема есть уже на Форосе почитайте и ваша проблема больше не будет проблемой)

MassonNN
15.05.2020, 00:46
Используй ID как auto increment

Shaolinka
18.05.2020, 00:11
при создании актёра, присваивай ему sql id, который выведет cache_insert_id(функция, которая возвращает последний доступный ИД). Ну, а если проверку, то вот:


new fmt_str[] = "SELECT * FROM имятаблицысактёрами WHERE id=%d",
result_str[((sizeof fmt_str) + ((- 2 + 11)) + 1))];
mysql_format(идсоединения, result_str, sizeof result_str, fmt_str, cache_insert_id());
mysql_tquery(идсоединения, result_str);

new rows = cache_num_rows();

if(rows)
return print("Данный ид занят!");

else
print("всё норм, работаем девачки");

Можно ещё с итератором замутить, при создании получать свободный слот(Iter_Free), потом добавлять его в итератор. Ну, а для проверки юзать Iter_Contains, дабы проверить наличие указанного ИД в итераторе.