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'];
- Виталий Кличко не даде шанс на Мануел Чар
- Военната борба е спорт, състоящ се в единична битка на двама спортисти според определени
- 3 лесни начина за определяне на настроенията на пазара
- 5 причини, поради които трябва да дадете шанс на мъжа "не по ваш вкус"
- Transact-SQL, Създаване на различни обекти на база данни