PHP и MySql: Как да определим последващ идентификатор в базата данни

Артур Гаврилов

Трябва да разбера какъв ще бъде следващият първичен идентификатор за автоматично увеличаване в MySql.

Например в администраторския интерфейс се показват 10 резултата от базата данни, последният идентификатор е 10, ако изтрия например последните две полета от базата данни (10 и 9), тогава последният резултат с идентификатор 8 ще бъде показва се в администраторския панел. И ако след това въведа ново поле в базата, тогава идентификаторът му ще бъде 11, тъй като Десетката вече беше.

И така, въпросът се готви, как да се определи чрез PHP какъв ще бъде следващият създаден ID?
Добавено (1). Роман: Това не работи, защото Ако последният идентификатор в базата данни е 8, това не означава, че следващият ще бъде 9. Ако по-голям идентификатор вече е изтрит, тогава ще бъде извикан следващият от този по-голям документ за самоличност
Добавено (2). Благодаря, вече подканени във форума, подобно на отговора на Александър.
Александър, имам нужда от следващия ключ, за да създам допълнителни полета за HTML формуляри с помощта на javascript, трябва да се замени в атрибута name и да се увеличи с 1 с всяко ново поле

Роман Астахов

$ id = mysql_insert_id ();
или
$ q = mysql_query ("ИЗБЕРЕТЕ идент. от файл ПОРЪЧКА ПО id DESC ГРАНИЦА 1");

>> И така, въпросът се готви, как да се определи чрез PHP какъв ще бъде следващият създаден ID?
разберете идентификатора и добавете +1

Александър Ермилов

Съжалявам, но защо ми трябва ключ за запис, който все още не съществува?)
първичният ключ, който е auto_increment, защото не е нужно да знаете, за да въвеждате данни в базата данни. Просто не посочвате стойността.
и можете да го разберете след изпращане на заявката с помощта на mysql_insert_id (), както вече е препоръчал Роман. Но ако типът данни в тази колона е BIGINT, тогава трябва да използвате функцията (dev.mysql.com [премахнете интервала преди.com] - LAST_INSERT_ID (. В противен случай стойността ще бъде изкривена.
Ако все още имате нужда от следния ключ, тогава той вероятно е такъв:

$ table = "име на таблица";
$ qStatus = "ПОКАЖИ СЪСТОЯНИЕТО НА МАСА КАТО '$ table'";
$ qStatusResult = mysql_query ($ qStatus) или die ("Заявката не бе успешна:. Mysql_error ()." ". $ qStatus.

$ ред = mysql_fetch_assoc ($ qStatusResult);
$ next_key = $ row ['Auto_increment'];