Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Добавление данных
Форумы портала PHP.SU » » Вопросы новичков » Добавление данных

Страниц (1): [1]
 

1. Gost12345 - 07 Декабря, 2016 - 11:11:19 - перейти к сообщению
Добрый день. Есть таблица в БД, допустим,Товар.
номер название привезли продали
1 мяч 50 шт 20шт
2 ракетки 100шт 100шт

Нужно отсортировать эту таблицу таким образом чтобы получилось вот так:
номер название оборот количество
1 мяч привезли 50шт
2 мяч продали 20шт
3 ракетки привезли 100шт
4 ракетки продали 100шт

И эту таблицу нужно хранить в БД.
Пробую INSERT...SELECT, но ничего не добавляется.
Спасибо.
2. Мелкий - 07 Декабря, 2016 - 11:23:26 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO tablename (name, type, count)
  2. SELECT name, 'input', input_count FROM tablename
  3. UNION ALL
  4. SELECT name, 'output', output_count FROM tablename


Приправить where по вкусу.
3. Gost12345 - 07 Декабря, 2016 - 13:38:30 - перейти к сообщению
А если мне нужно сохранить эти данные в другую таблицу? то тоже UNION ALL делать?
4. Мелкий - 07 Декабря, 2016 - 13:47:09 - перейти к сообщению
Тьфу, я одно и то же им таблицы взял. Писать можно в любую таблицу, конечно.

В абстрактном случае сделать из столбцов строки проще всего через union all. Извращаться стоит, если не подходит простой вариант.
5. Gost12345 - 08 Декабря, 2016 - 07:52:49 - перейти к сообщению
Таблица Tovar:(из которой надо брать данные)
id,name,privoz,prodaga

Таблица Oborot:(куда нужно вносить данные)
id,nane_ob, oborot,number

Пробую так
INSERT INTO Oborot(name_ob,oborot,number) SELECT name,'privoz',privoz FROM Tovar UNION ALL SELECT name,'prodaga',prodaga FROM Tovar

ничего не добавляет и не выдает никаких ошибок
6. Мелкий - 08 Декабря, 2016 - 10:34:32 - перейти к сообщению
Значит или вы не смотрите ошибки или ваша таблица со странным названием "Tovar" пуста.
7. Gost12345 - 09 Декабря, 2016 - 08:59:46 - перейти к сообщению
Таблица Tovar c данными, и код выдачи ошибок подключен
8. Мелкий - 09 Декабря, 2016 - 10:22:14 - перейти к сообщению
Не вижу смысла спорить с субд. Покажите выполнение запроса с консоли используемой СУБД.
Затем, если субд скажет, что столько-то строк записано - минимально-воспроизводимый пример кода.

А то есть ещё забавный вариант, на который на ruSO не так давно отвечал - вы открыли транзакцию и так до завершения скрипта её и не закоммитили.

 

Powered by ExBB FM 1.0 RC1