Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Получить идентификатор последней записи в таблице
 
 автор: Bvz   (15.09.2009 в 19:06)   письмо автору
 
 

как получить инентификатор последней записи в таблице?

  Ответить  
 
 автор: neadekvat   (15.09.2009 в 19:11)   письмо автору
 
   для: Bvz   (15.09.2009 в 19:06)
 

mysql_insert_id()

  Ответить  
 
 автор: cheops   (15.09.2009 в 19:16)   письмо автору
 
   для: Bvz   (15.09.2009 в 19:06)
 

Если запись только что вставлена удобно воспользоваться функцией mysql_insert_id(). Если запись была вставлена в рамках другого соединения с MySQL, придется запрашивать его при помощи MySQL-функции MAX()
SELECT MAX(id) FROM tbl

id - имя столбца с индентификаторами.

  Ответить  
 
 автор: Bvz   (15.09.2009 в 19:18)   письмо автору
 
   для: cheops   (15.09.2009 в 19:16)
 

SELECT MAX(id) FROM tbl то что нужно, а как его облачить в php код?

  Ответить  
 
 автор: cheops   (15.09.2009 в 19:22)   письмо автору
 
   для: Bvz   (15.09.2009 в 19:18)
 

Примерно так
<?php
  $query 
"SELECT MAX(id) FROM tbl";
  
$row mysql_query($query);
  if(!
$row) exit("Ошибка извлечения идентификатора - ".mysql_error());
  echo 
mysql_result($row0);
?>

PS Разумеется перед этим нужно позаботится об установки соединения с базой данных.

  Ответить  
 
 автор: Bvz   (15.09.2009 в 19:26)   письмо автору
 
   для: cheops   (15.09.2009 в 19:22)
 

спасибо, а почему mysql_result($row, 0);

  Ответить  
 
 автор: cheops   (15.09.2009 в 19:29)   письмо автору
 
   для: Bvz   (15.09.2009 в 19:26)
 

$row - это дескриптор результирующей таблицы, а 0 - это смещение от начала. К сожалению, по умолчанию этот 0 сам не прописывается и выдается предупрежедение.

  Ответить  
 
 автор: Bvz   (15.09.2009 в 19:37)   письмо автору
 
   для: cheops   (15.09.2009 в 19:29)
 

я имел ввиду почему эта функция mysql_result, а не например mysql_fetch_assoc

  Ответить  
 
 автор: cheops   (15.09.2009 в 19:48)   письмо автору
 
   для: Bvz   (15.09.2009 в 19:37)
 

Её традиционно используют, если одно значение, кроме того с mysql_fetch_assoc() не совсем удобно в том плане, что придется либо переименовывать значение при помощи ключевого слова AS в запросе, либо так и обращаться потом $result['MAX(id)'] - последнего стараются избегать.

  Ответить  
 
 автор: Bvz   (15.09.2009 в 20:03)   письмо автору
 
   для: cheops   (15.09.2009 в 19:48)
 

пасиб!

  Ответить  
 
 автор: Bvz   (15.09.2009 в 21:13)   письмо автору
 
   для: cheops   (15.09.2009 в 19:22)
 

а можно ли задать критерий выбора в таком запросе, например WHERE period= 1?

  Ответить  
 
 автор: cheops   (15.09.2009 в 21:13)   письмо автору
 
   для: Bvz   (15.09.2009 в 21:13)
 

Конечно.

PS Запрос будет реагировать не стандартно только на GROUP BY - в этом случае для каждого из группируемых значений будет извлекаться свое собственное максимальное значение, а во всем остальном - это обычный запрос.

  Ответить  
 
 автор: Bvz   (15.09.2009 в 21:23)   письмо автору
 
   для: cheops   (15.09.2009 в 21:13)
 

СПАСИБО!!!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования