PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (11): « 1 2 3 [4] 5 6 7 8 9 ... » В конец

> Найдено сообщений: 161
lamozavrik Отправлено: 22 Февраля, 2012 - 12:45:45 • Тема: Как пересчитать доп. поле? • Форум: SQL и Архитектура БД

Ответов: 41
Просмотров: 219
Вообщем алгоритм должен быть таким:
1. Я выбираю минимальное число и максимальное число с того столбца с числами
2. Генерю девять случайных чисел от минимального до максимально (как раз тут и нужно, что бы числа шли по порядку и не было пропусков между ними)
3. Далее составляю строку из чисел вида: число1, число2, число3...
4. Делаю выборку по условию WHERE столбец_с_числами IN (составленная строка)

Как то вот так ))
lamozavrik Отправлено: 22 Февраля, 2012 - 12:19:48 • Тема: Как пересчитать доп. поле? • Форум: SQL и Архитектура БД

Ответов: 41
Просмотров: 219
LIME пишет:
чет ляпнул

Что ляпнул? ))
lamozavrik Отправлено: 22 Февраля, 2012 - 12:08:13 • Тема: Как пересчитать доп. поле? • Форум: SQL и Архитектура БД

Ответов: 41
Просмотров: 219
EuGen, я это уже читал... В первом варианте есть вероятность повторения строки, а во втором запрос проходит по условию WHERE RAND()..., что не есть гуд (по моему) =))
lamozavrik Отправлено: 22 Февраля, 2012 - 11:53:27 • Тема: Как пересчитать доп. поле? • Форум: SQL и Архитектура БД

Ответов: 41
Просмотров: 219
LIME пишет:
чую что можно обойтись в выборке без них))

Вообще то можно =) Просто выборка выбирает 9 рандомных записей...Когда числа идут по порядку без пропусков, а не так как id, то отпадает вероятность выбора пустой строки или повторяющейся строки =)
lamozavrik Отправлено: 22 Февраля, 2012 - 11:27:36 • Тема: Как пересчитать доп. поле? • Форум: SQL и Архитектура БД

Ответов: 41
Просмотров: 219
LIME пишет:
а зачем их вообще нумеровать в базе?
может это проще делать при выводе?

Нет. Нужно именно в базе... По ним иногда проходит выборка, а для корректной выборки нужно именно по порядку
lamozavrik Отправлено: 22 Февраля, 2012 - 11:15:08 • Тема: Как пересчитать доп. поле? • Форум: SQL и Архитектура БД

Ответов: 41
Просмотров: 219
А более изящней решения я так понимаю нету? %)
lamozavrik Отправлено: 22 Февраля, 2012 - 10:52:52 • Тема: Как пересчитать доп. поле? • Форум: SQL и Архитектура БД

Ответов: 41
Просмотров: 219
Привет всем. Помогите с одной штукой. В таблице есть доп поле с номером записи (это не id), номера идут по порядку, то есть 1, 2, 3, 4... Но если удалить, например, вторую запись, то получится 1, 3, 4... Так вот, как при удалении пересчитать это поле, что бы опять шло по порядку? =)
lamozavrik Отправлено: 16 Февраля, 2012 - 18:20:03 • Тема: Проблема с запросом • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 29
EuGen, говроти, что не известное поле gio.id_заказа, но всё равно огромное тебе спасибо )) Совершенно забыл про GROUP BY )) Сделал немного другим запросом и все получилось ))
lamozavrik Отправлено: 16 Февраля, 2012 - 16:56:57 • Тема: Проблема с запросом • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 29
Всем здрасте. У меня возникла проблемка, не знаю как решить (( Может кто поможет? Дело вот в чем:
Есть 3 таблицы: справочник товаров, заказы и товары в заказах.
справочник товаров хранит всю инфу о товарах (id, название, цена, ...)
таблица заказов хранит инфу про заказы (id, номер, дата, заказчик...)
таблица товаров в заказе (id, id_заказа, id_товара, кол-тво_заказаного_товара)
Так вот, мне нужно выбрать желательно одним запросом, такую инфу из этих трёх таблиц
id_заказа, номер_заказа, заказчик, дата, сумма_заказа

выбираю вот таким запросом:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT    o.id_заказа,
  3.                DATE_FORMAT(o.дата_заказа, '%d.%m.%Y %H:%i') AS date,
  4.                o.номер_заказа,
  5.                o.статус_заказа,
  6.                o.заказчик,
  7.                g.цена_товара * gio.кол-во_данного_товара в заказе AS sum
  8.                                 FROM заказы o, товары g, товары_в_заказах gio
  9.                                 WHERE o.id_заказа = gio.id_заказа AND
  10.                                 g.id_товара = gio.id_товара
  11.  


Проблем вроде нету кроме одной!
Если есть один заказ с двумя разными товарами, то мне его выбирает два раза, только с разной суммой. То есть например один товар стоит 1500 и его заказали две штуки, другой товар в том же заказе стоит 2000 и его заказали 3 штуки, то мне выведет как будто два разных заказа и сумма первого будет 3000, а второго 6000, все остальные поля одинаковы, и номер, и заказчик, и id.

Так вот собственно вопрос: Как изменить мой запрос, что бы он выводил все заказы и считал общую сумму одного заказа?
Постарался описать как можно подробнее )) Заранее всем откликнувшимся спасибо )
lamozavrik Отправлено: 03 Февраля, 2012 - 22:03:44 • Тема: Умножение столбцов одним запросом • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 140
Спасибо ))
lamozavrik Отправлено: 03 Февраля, 2012 - 21:46:10 • Тема: Умножение столбцов одним запросом • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 140
Саныч, ну таблица товаров так и есть, а вот с заказами наверное всё таки сделаю на две таблицы. Спасибо )
(Добавление)
Хорошо, еще вопрос: Допустим клиент оформил заказ, я его записал в таблицу как id, дата, кто заказал, статус и т.д., а потом мне соответственно нужно добавить в таблицу товаров в заказе сами id заказа, id товара, количество. Так вот как мне узнать под каким id записался заказ в таблицу заказов, что бы потом записать этот id как id заказа в таблицу товаров в заказе?

Как всё запутано )))
lamozavrik Отправлено: 03 Февраля, 2012 - 21:34:25 • Тема: Умножение столбцов одним запросом • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 140
не знаю извращенство или нет, но никак не могу придумать, как оптималнее всего хранить заказы в БД
(Добавление)
Просто как мне показалось, что это нормально, что у тебя есть заказ, в этом заказе хранятся все айди товаров через запятую, которые заказали и количество этих товаров тоже через запятую. Вот как вывести все товары с этими айди, я знаю
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT title, price FROM goods WHERE id IN(1, 2, 3)

но вот как сделать, что бы цена товара с определенным айди умножалась на количество заказаного товара с этим же айди )))
lamozavrik Отправлено: 03 Февраля, 2012 - 21:13:50 • Тема: Умножение столбцов одним запросом • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 140
Саныч, нет. В поле count количество лежит в виде строки: 2, 2, 4, а айди товаров в виде строки 1, 2, 3, так вот первая цифра count относится к первой цифре айди, вторая ко второй, третья к третьей и т.д
lamozavrik Отправлено: 03 Февраля, 2012 - 21:06:19 • Тема: Умножение столбцов одним запросом • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 140
Привет знатоки MySQL! Передо мной стала такая вот задачка: Делаю интернет магазин, вся корзина построена на кукисах, в базу заносится уже готовый заказ. Заносится в таком виде:
Есть поля itmes_id, count где в itmes_id хранятся идентификаторы товаров в виде 1, 2, 3 и т.д., и в count хранится количество товаров в виде 2, 2, 4 и т.д., соответственно первая цифра относится к первому id, вторая ко второму и т.д. Так вот, как можно одним запросом умножить к примеру цену товара с таким id на количество, которое относится к этому товару?
Тоесть что бы вывести все товары мне нужно сделать запрос типа

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT title, price FROM goods WHERE id IN(1, 2, 3);



А вот как сделать, что бы сразу во время запроса количество умножалось на цену и выдавало мне сумму? Что то типа такого, но так естественно не работает, так, пишу для понимания:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT title, price, price*IN(2, 2, 4) AS sum FROM goods WHERE id IN(1, 2, 3);



или прийдется всё таки строку переводить в массив средствами PHP и в цикле делать выборку?
надеюсь смог объяснить )) Сори, если что не так ))
lamozavrik Отправлено: 24 Января, 2012 - 17:43:50 • Тема: Помогите с куками • Форум: Работа с файловой системой и файлами

Ответов: 7
Просмотров: 1724
Мелкий, вот спасибо! Точно, там же ноль нужно поставить )))

Страниц (11): « 1 2 3 [4] 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB