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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2018, 06:21   #1
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию Добавить номер заказа в БД

Здравствуйте, подскажите плиз, как добавить заказу последовательный номер из БД, не путать с уникальным id так как он создается для каждой строки, а мне нужно добавлять КАЖДОМУ заказу, а так как добавляемых строк может быть N то номер должен быть один для этого заказа.
Запись в таблицу такая
PHP код:
$query "INSERT INTO client (name, foto, raskroi, system, uprav, width, height, quantity, price, a, price_itog) VALUES "implode(', '$string); 
Может можно настроить в самой таблице sql не выдергивая значения столбца и перезаписывая обратно?
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 16.08.2018, 07:39   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
insert into client (заказ, ...)
select Z20-04-2018-0056, <перечень столбцовПОЛЕЙ желаемых к преносу>
from xxx
where id in (1,2,3) --перечень ВЫБРАННЫХ строк к переносу
НО... длинный перечень говорит о НЕнормализовааной БД.
вполне достаточно было бы и одного ID (или нескольких, при сбросе данных из нескольких таблиц)
а уж "дублирование" photo в БД...
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 16.08.2018, 08:09   #3
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Мне нужен номер заказа, как я передам ID в виде номера заказа если он присваивается каждой строке свой? Если клиент выбрал три изделия то каждый заносится по своим уникальным ID, вот и нужно присвоить одному заказу один номер
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 16.08.2018, 08:17   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Смотрите про нормализацию БД.

Сначала добавьте заказ, потом добавьте изделия заказа.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.08.2018, 08:19   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Может можно настроить в самой таблице sql не выдергивая значения столбца и перезаписывая обратно?
Нельзя. Только программно. По хорошему отдельная таблица заказов, со своим уникальным ид, он же может быть и номером или номер отдельным полем, если какие-то особые требования к его генерации. В этой же таблице и какие-то другие поля общие для всего заказа. И те все выбранные записи в другой таблице ссылаются на ид заказа.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.08.2018, 15:21   #6
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Может не так обьяснил)) Про то что в самом sql не вариант это я понял, но со стальным, честно говоря не очень.
У меня уже таблица с заказами client т.е. куда записываются заказы
Код:
$query = "INSERT INTO client (name, foto, raskroi, system, uprav, width, height, quantity, price, a, price_itog) VALUES ". implode(', ', $string);
Добавляться может не один, а несколько заказов одновременно например клиент выбрал три изделия и заказал их, эти три заказа записываются в таблицу client, например с уникальным id 14, 15, 16, но номер заказа у них будит один, например 33 столбец nomer_zakaza.
Как я это представляю, сортируем таблицу с помощью ORDER BY по убыванию DESC и берем первую строчку она же последняя в таблице, берем значения столбца nomer_zakaza прибавляем 1, добавляем сюда
Код:
$query = "INSERT INTO client (nomer_zakaza, name, foto, raskroi, system, uprav, width, height, quantity, price, a, price_itog) VALUES ". implode(', ', $string);
Например по последнему добавленному id
Код:
SELECT top 1 * FROM client ORDER BY id DESC
Если так сделать?
Еду медленно, но верно!

Последний раз редактировалось spoon100500; 16.08.2018 в 15:33.
spoon100500 вне форума Ответить с цитированием
Старый 16.08.2018, 15:36   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Можно так, можно с помощью max выбрать последний использованный номер заказа. Проверь что быстрей, то и используй. Возможные "плюшки" - один и то же номер можно присвоить разным заказам когда, скажем, от имени двух юзеров этот запрос будет выполнен почти одновременно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.08.2018, 15:43   #8
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
один и то же номер можно присвоить разным заказам когда, скажем, от имени двух юзеров этот запрос будет выполнен почти одновременно
т.е. если два чела одновременно заказали и этим заказам присвоился один номер?
Блин это ж,па, что делать?
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 16.08.2018, 15:47   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вам уже несколько раз сказали как лучше сделать. Думаете у вас какая-то сверхуникальная задача не решаемая SQL без костылей?
Ну раз не хотите изучать про нормализацию и т.п., то пилите дальше свой велосипед.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 16.08.2018 в 15:49.
Alex11223 вне форума Ответить с цитированием
Старый 16.08.2018, 16:06   #10
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Если мой вариант "костыль" тогда придется читать про нормализацию.
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить номер строки и добавить после новую строку mr_xxx SQL, базы данных 9 12.07.2018 13:39
К новой позиции добавить номер и дату limon142 JavaScript, Ajax 6 11.01.2014 15:21
Как добавить недостающие нули в номер (ячейку) Rusich Microsoft Office Excel 2 16.05.2013 16:05
с++ Дан номер года,Определить соответствующий ему номер столетия rinoolik Помощь студентам 1 18.02.2013 22:21
Как вычислить номер месяца, имея номер недели? Ras2im Microsoft Office Excel 17 07.10.2012 03:31