Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2014, 17:36   #1
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию Автонумерация в БД

Прошу помощи у гуру PHP!
Есть таблица Journal с элементами в ней zap, ish_nd, date_ish_nd и т.д.
Селекчу в нее данные через форму, это самое простое, но мне необходимо проделать при селекте следующую фитчу с элементом ish_nd и как это реализовать (база пустая):
загоняем в таблицу первоначальные данные, проверяем в базе ish_nd на наличие в ней данных, если 0, то добавляем 1; если последняя запись равна 1 или 2 или 3 и т.д. то приплюсовываем к этим данным +1 (т.е в БД последняя запись элемента ish_nd равна "3" то +1 = "4") и загоняем готовые данные формой вместе с другими элементами.
Надеюсь я доступно обьяснил =)).

Изначально хотел брать данные из ID (AUTO_INCREMENT), но когда столкнулся с некоторыми проблемами при удалением данных из БД, то в срочном порядке пришлось отказаться от этой идеи.

Последний раз редактировалось maksikus; 08.12.2014 в 17:42.
maksikus вне форума Ответить с цитированием
Старый 08.12.2014, 17:44   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

И что за проблемы?
ADSoft вне форума Ответить с цитированием
Старый 08.12.2014, 17:56   #3
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

Моих познаний в PHP не хватает для реализации данной задачи, вот и прошу помощи. Хотя бы направить как это сделать.
maksikus вне форума Ответить с цитированием
Старый 08.12.2014, 18:01   #4
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Надеюсь я доступно обьяснил =)).
Нет.
Непонятно каков должен быть игот? Непрерывная нумерация строк в бд?
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 08.12.2014, 18:05   #5
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Нет.
Непонятно каков должен быть игот? Непрерывная нумерация строк в бд?
Да, непрерывная нумерация, на подобии как в функции AUTO_INCREMENT
maksikus вне форума Ответить с цитированием
Старый 08.12.2014, 18:19   #6
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Да, непрерывная нумерация, на подобии как в функции AUTO_INCREMENT
Именно в БД или на странице сайта? То есть непрерывная нумерация необходимое условие "работы" БД или это чисто для удобства пользователя?
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 08.12.2014, 18:23   #7
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Именно в БД или на странице сайта? То есть непрерывная нумерация необходимое условие "работы" БД или это чисто для удобства пользователя?
Необходимо, чтобы готовые данные из формы добавлялись в БД, т.е. скрипт смотрит в таблице ish_nd если 0 то добавляет 1, если последняя запись имеет 1 или 2 приплюсовывает к нему 1 и через форму вносит готовый результат в БД.
maksikus вне форума Ответить с цитированием
Старый 08.12.2014, 18:33   #8
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Необходимо, чтобы готовые данные из формы добавлялись в БД, т.е. скрипт смотрит в таблице ish_nd если 0 то добавляет 1, если последняя запись имеет 1 или 2 приплюсовывает к нему 1 и через форму вносит готовый результат в БД.
Ох...
Вы наступите на те же грабли что и с автоинкрементом. В таблице 5 записей, удаляется запись 3, записи 4 и 5 сохранят номера, следующая запись будет иметь номер 6.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 08.12.2014, 18:37   #9
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Ох...
Вы наступите на те же грабли что и с автоинкрементом. В таблице 5 записей, удаляется запись 3, записи 4 и 5 сохранят номера, следующая запись будет иметь номер 6.
То что в середине не важно, важно, чтобы при удалении последней , т.е. 4, 5,6, удалить 6 , остается 4,5 и +1 =6. С автоинкрементом он продолжит 7, вместо 6, это сбивает нумерацию напроч.
maksikus вне форума Ответить с цитированием
Старый 08.12.2014, 18:54   #10
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
С автоинкрементом он продолжит 7, вместо 6, это сбивает нумерацию напроч.
Ох... Как это сбивает? Поясните.

Могу предложить 2 надёжных решения и с автоинкрементом и без, но оба они неоптимальны, а на большом проекте положат СУБД моментом. Это не решение, это изначальный костыль.
Могу предложить одно ненадежное, которое может привести к дублированию номеров, что тоже костыль.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автонумерация строк в Эксель! Blood_ghosT Microsoft Office Excel 6 26.07.2014 07:47
автонумерация kolyaod Microsoft Office Word 2 27.09.2011 10:16
Автонумерация подписей к рисункам Alar Microsoft Office Word 1 02.09.2011 13:48
автонумерация рис... warma2d Microsoft Office Word 3 18.12.2008 17:18
Автонумерация при скрытых строках. DiVinyl Microsoft Office Excel 1 17.03.2007 18:02