Форум программистов, компьютерный форум, киберфорум
Наши страницы
Zend Framework
Войти
Регистрация
Восстановить пароль
 
Toxa33rus
3814 / 878 / 120
Регистрация: 16.04.2009
Сообщений: 1,766
#1

Получить код будущей записи в БД - Zend

30.04.2018, 19:11. Просмотров 128. Ответов 7
Метки нет (Все метки)

Как можно получить под каким id будет создана будущая запись? Т.е. нужно узнать атвоинкрементый код не после сохранения, а перед.
PHP
1
2
3
4
$partner = new App_Model_Partner();
$partner->name = 'Dima';
$partner->img = будущий_id . '.jpg';
$partner->save();
Нашел такую штуку:
PHP
1
$this->getDbTable->newId('partners','id');
Но выдает
Fatal error: Call to a member function newId() on null in
Добавлено через 51 минуту
Пока сделал такие костыли:
PHP
1
2
3
4
5
6
$partner = new App_Model_Partner();
$partner->name = 'Dima';
$partner->img = '';
$partner->save();
$partner->img = $this->db->lastInsertId() . '.jpg';
$partner->save();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2018, 19:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Получить код будущей записи в БД (Zend):

Определение будущей стоимости.
Определение будущей стоимости Рассчитайте какая сумма окажется на счете, если...

Модель данных будущей БД
Здравствуйте. Сомневаюсь в своей составленной схеме модель данных будущей БД. ...

Задача на расчёт будущей прибыли
Здравствуйте. Помогите пожалуйста разобраться с задачкой - вроде решил, но...

Иерархия классов для будущей игры
Здравствуйте. До этого писал простенькие игрушки вроде карточных игр, но...

Все ли совместимо в моей будущей железяке?
И так ситуация такова я захотел собрать ПК в размере 46 - 50 кусков. Просто...

Можно ли узнать размер будущей выборки, не производя её?
С помощью оператора SELECT и условий WHERE можно получить из базы нужную...

7
Borsche
166 / 95 / 40
Регистрация: 03.07.2016
Сообщений: 414
30.04.2018, 23:44 #2
Цитата Сообщение от Toxa33rus Посмотреть сообщение
атвоинкрементый код не после сохранения, а перед
Id даёт БД а не ORM поэтому не получиться до сохранения. Если вам не принципиально нужно устанавливать имя картинки равным id сущности, просто генерируйте его и всё. А если же принципиально то до сохранения сущности сами давайте ей id , можно воспользоваться uuid.
1
Toxa33rus
3814 / 878 / 120
Регистрация: 16.04.2009
Сообщений: 1,766
30.04.2018, 23:49  [ТС] #3
Цитата Сообщение от Borsche Посмотреть сообщение
Если вам не принципиально нужно устанавливать имя картинки равным id сущности, просто генерируйте его и всё. А если же принципиально то до сохранения сущности сами давайте ей id , можно воспользоваться uuid.
Да, хочу чтоб id был такой же как картинка чтоб не было путаницы.
0
Borsche
166 / 95 / 40
Регистрация: 03.07.2016
Сообщений: 414
01.05.2018, 10:26 #4
Не совсем понятно зачем вам это, но раз уж так то или сами давайте id или сохраняйте сущность берите id и обновляйте(в принципе вы так и сделали). И кстати вы что картинку в базе храните?
0
Toxa33rus
3814 / 878 / 120
Регистрация: 16.04.2009
Сообщений: 1,766
01.05.2018, 11:39  [ТС] #5
Цитата Сообщение от Borsche Посмотреть сообщение
Не совсем понятно зачем вам это
С сайтом работают два человека: простой пользователь через простенькую админку, и я через phpmyadmin+ftp.
Пользователь заносит в базу поштучно что ему надо, а я сразу пачкой через sql запрос. Я заранее знаю какой будет следующий id и все картинки переименовываю как надо, а дальше файлы закидываю и в базу заливаю всю инфу.
Если отказаться от соответствия имени фотки и id, то для меня это будет уже не удобно.
В базе хранится только имя файла, а сами файлы конечно же в отдельной папке. Через админку могут выбрать Без-имени-1.jpg, а картинка переименуется как надо. Вот и надо знать во что ее переименовать.
Как-то так.
0
arava
305 / 110 / 61
Регистрация: 30.06.2014
Сообщений: 613
05.06.2018, 12:02 #6
Цитата Сообщение от Toxa33rus Посмотреть сообщение
получить под каким id будет создана будущая запись
простите, а что мешает получить последнюю запись с таблицы + 1 ?
0
Toxa33rus
3814 / 878 / 120
Регистрация: 16.04.2009
Сообщений: 1,766
05.06.2018, 12:53  [ТС] #7
Цитата Сообщение от arava Посмотреть сообщение
а что мешает получить последнюю запись с таблицы + 1 ?
Опасно.
При удалении последней записи (с максимальным id), инкремент не уменьшается.
Получается я получу максимальный код, например, 6, а новая запись будет с кодом 8.
0
arava
305 / 110 / 61
Регистрация: 30.06.2014
Сообщений: 613
05.06.2018, 13:57 #8
Toxa33rus, вижу еще такой вариант :
хранить доп таблицу для нумерации картинок. Делать в неё insert перед сохранением картинки, получать lastinsertid() и выполнять +1 и сохранять картинку с уже +1.
При удалении картинки, таблицу с номерами картинок не трогаем, при следующем insert автоинкримент будет расти...

0
05.06.2018, 13:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2018, 13:57
Привет! Вот еще темы с решениями:

Как получить исходный код *.exe или отредактировать его исполняемый код?
Собственно возможно ли декомпилить его так, чтобы можно было потом обратно...

Использование типа decimal для вычисления будущей стоимости капиталовложений
Доброго времени суток, занимаюсь пару дней по книге "полный справочник по C#"...

Как доработать js для вывода будущей даты с учетом выходных и праздников
Добрый день! У меня есть задача расчета и вывода на странице даты выполнения...

Получить Id записи из таблицы
пишу комментарии к статьям на сайте и я новичок в php/ Помогите найти id записи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru