Joomla 2.5 Как узнать id сохраненной записи после метода Save?

Тема в разделе "Программирование", создана пользователем vipTelnet, 06.04.2014.

  1. Offline

    vipTelnet Недавно здесь

    Регистрация:
    02.01.2011
    Сообщения:
    13
    Симпатии:
    0
    Пол:
    Мужской
    Друзья Всем привет

    Ситуация такая, делаю компонент все как всегда стандартными средствами, но встал на том месте где мне необходимо получить как то last_inset_id в модели после вызова стандартного метода Save, дело в том что с формы я отправляю данные которые у меня записываются не в 1 таблицу а в не сколько, и вот я хотел бы связать по Id эти записи таблицы.
    Сейчас приведу код и все станет ясно.

    Код (PHP):
    1. class BetonsModelfrostresistance extends JModelAdmin
    2. {
    3.  
    4.     /**
    5.     * Method to save the form data.
    6.     *
    7.     * @param    array   The form data.
    8.     *
    9.     * @return   boolean True on success.
    10.     * @since    1.6
    11.     */
    12.     public function save($data)
    13.     {
    14.  
    15.         if (parent::save($data)) {
    16.  
    17.             // Get a db connection.
    18.             $db = JFactory::getDbo();
    19.                    
    20.             // Insert columns. Тут мой код для вставку в другую таблицу
    21.  
    22.             return true;
    23.         }
    24.  
    25.         return false;
    26.  
    27.     }
    28. }

    Знаю что можно тупо переопределить весь метод и т.е не вызывать parent::save($data) для сохранения в основную таблицу модели, но все таки хотелось узнать как получить id последней вставленной записи
     
    Последнее редактирование модератором: 07.04.2014
  2.  
  3. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Код (PHP):
    1. $lastRowId = $db->insertid();

    Не работает?
     
  4. woojin
    Offline

    woojin Местный Команда форума

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    сделай вот такой запрос
    Код (sql):
    1. mysql> SELECT AUTO_INCREMENT
    2. -> FROM information_schema.TABLES
    3. -> WHERE table_schema = 'mysql'
    4. -> AND TABLE_NAME = 'time_zone'
    5. -> UNION
    6. -> SELECT AUTO_INCREMENT
    7. -> FROM information_schema.TABLES
    8. -> WHERE table_schema = 'mysql'
    9. -> AND TABLE_NAME = 'time_zone'

    только названия таблиц и БД измени
    и тебе будет самый точный AUTO_INCREMENT по запрашиваемой таблице
    потом отними от него единицу и получишь свой номер записи
     

Поделиться этой страницей

Загрузка...