Посоветуйте, как красивее всего получить id последнего занесенного в таблицу поля.
Благодарю!
Спустя 15 часов, 4 минуты, 18 секунд (19.07.2006 - 11:24) Vitas написал(а):
mysql_insert_id ()
Спустя 5 часов, 40 минут, 34 секунды (19.07.2006 - 17:04) killich написал(а):
Мне, неверное, надо немного другое.
В доке написано:
mysql_insert_id -- Get the ID generated from the previous INSERT operation
Т.е., получить id записи, последней вставки данных.
А я хочу, чтоб можно было взять любую таблицу (не обязательно ту, в которую произвели последнюю вставку) и тут же узнать ее последний (максимальный) id.
В принципе, просто нужно выбрать все id таблицы в убывающем порядке и взять первый. Я же увидел в MyAdmin строчку LAST_INSERT_ID,
и подумал, что может, есть более хитрый способ, вроде подачи запроса 'LAST_INSERT_ID myTab', который и вернет этот id. Вот и решил сначала спросить.
Но, mysql_insert_id - тоже пригодится. Спасибо.
В доке написано:
mysql_insert_id -- Get the ID generated from the previous INSERT operation
Т.е., получить id записи, последней вставки данных.
А я хочу, чтоб можно было взять любую таблицу (не обязательно ту, в которую произвели последнюю вставку) и тут же узнать ее последний (максимальный) id.
В принципе, просто нужно выбрать все id таблицы в убывающем порядке и взять первый. Я же увидел в MyAdmin строчку LAST_INSERT_ID,
и подумал, что может, есть более хитрый способ, вроде подачи запроса 'LAST_INSERT_ID myTab', который и вернет этот id. Вот и решил сначала спросить.
Но, mysql_insert_id - тоже пригодится. Спасибо.
Спустя 55 минут, 11 секунд (19.07.2006 - 17:59) vasa_c написал(а):
killich, зачем?
Спустя 12 часов, 19 минут, 54 секунды (20.07.2006 - 06:19) zilogo написал(а):
$db = '';
$table = '';
mysql_connect('', '', '');
$res = mysql_query("show table status from $db");
while($arr_result = mysql_fetch_assoc($res))
{
if($arr_result['Name'] == $table)
if(empty($arr_result['Auto_increment']))
echo 'В таблице нет поля с auto_increment';
else
echo 'Последний auto_increment: '.($arr_result['Auto_increment']-1);
}
$table = '';
mysql_connect('', '', '');
$res = mysql_query("show table status from $db");
while($arr_result = mysql_fetch_assoc($res))
{
if($arr_result['Name'] == $table)
if(empty($arr_result['Auto_increment']))
echo 'В таблице нет поля с auto_increment';
else
echo 'Последний auto_increment: '.($arr_result['Auto_increment']-1);
}
Спустя 2 месяца, 11 дней, 5 часов, 35 минут, 49 секунд (1.10.2006 - 11:55) killich написал(а):
Самому себе:
Killich, вот то, что ты хотел. Тут, наверное, не потеряется.
А то опять забудешь в какую папку запихал ;0)
A common problem is how to get the value of an automatically generated
ID from an `INSERT'. With ODBC, you can do something like this (assuming
that `auto' is an `AUTO_INCREMENT' field):
INSERT INTO foo (auto,text) VALUES(NULL,'text');
SELECT LAST_INSERT_ID();
Or, if you are just going to insert the ID into another table, you can
do this:
INSERT INTO foo (auto,text) VALUES(NULL,'text');
INSERT INTO foo2 (id,text) VALUES(LAST_INSERT_ID(),'text');
http://chronos.cs.msu.su/cgi-bin/info2www?...+last_insert_id
Killich, вот то, что ты хотел. Тут, наверное, не потеряется.
А то опять забудешь в какую папку запихал ;0)
A common problem is how to get the value of an automatically generated
ID from an `INSERT'. With ODBC, you can do something like this (assuming
that `auto' is an `AUTO_INCREMENT' field):
INSERT INTO foo (auto,text) VALUES(NULL,'text');
SELECT LAST_INSERT_ID();
Or, if you are just going to insert the ID into another table, you can
do this:
INSERT INTO foo (auto,text) VALUES(NULL,'text');
INSERT INTO foo2 (id,text) VALUES(LAST_INSERT_ID(),'text');
http://chronos.cs.msu.su/cgi-bin/info2www?...+last_insert_id
Спустя 1 минута, 5 секунд (1.10.2006 - 11:56) killich написал(а):
ну, или почти то.... ;0)
Спустя 8 дней, 9 минут, 19 секунд (9.10.2006 - 12:05) max_ru написал(а):
SELECT MAX user_id FROM table - или как-то так, я точно не помню, а в книжку лезть лень. Кури мануал.
_____________
Аксиома Дучарма:
Если рассмотреть проблему достаточно внимательно, то Вы увидите себя, как часть этой проблемы.