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

Discussion in 'Программирование' started by vipTelnet, Apr 6, 2014.

  1. Offline

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

    Joined:
    Jan 2, 2011
    Messages:
    13
    Likes Received:
    0
    Gender:
    Male
    Друзья Всем привет

    Ситуация такая, делаю компонент все как всегда стандартными средствами, но встал на том месте где мне необходимо получить как то 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 последней вставленной записи
     
    Last edited by a moderator: Apr 7, 2014
  2.  
  3. OlegM
    Offline

    OlegM Russian Joomla! Team Staff Member

    Joined:
    Apr 12, 2007
    Messages:
    4,310
    Likes Received:
    375
    Gender:
    Male
    Код (PHP):
    1. $lastRowId = $db->insertid();

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

    woojin Местный Staff Member => Cпециалист <=

    Joined:
    May 31, 2009
    Messages:
    3,204
    Likes Received:
    334
    Gender:
    Male
    сделай вот такой запрос
    Код (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 по запрашиваемой таблице
    потом отними от него единицу и получишь свой номер записи
     

Share This Page

Loading...