Вывод данных из mySQL в PHP!!!
Есть таблица в mySQL, в которой занесены данные о торговых операциях, на php делаю запрос из этой таблицы
(тем самым создаю отчет об операциях) и вывожу в примерно такую таблицу:
--------------------------------------------------------
| Название | Кол. | Сумма | Операция |
--------------------------------------------------------
| Товар1 | 2 | 2000 | Продажа |
| Товар2 | 1 | 150 | Продажа |
| Товар1 | 1 | 2000 | Продажа |
| Товар2 | 2 | 100 | Приход |
| Товар2 | 2 | 100 | Приход |
-------------------------------------------------------
Вопрос в том, чтобы не отображать все записи из таблицы, а сделать примерно так:
--------------------------------------------------------
| Название | Кол. | Сумма | Операция |
--------------------------------------------------------
| Товар1 | 3 | 3000 | Продажа |
| Товар2 | 1 | 150 | Продажа |
| Товар2 | 4 | 200 | Приход |
-------------------------------------------------------
То есть товар с одинаковым названием и с одинаковой операцией обьединялись в один,
а количество и сумма соответсвенно складывались. При этом, один и тот же товар может быть и продан,
а через некоторое время он снова возврашён в базу (осуществили приход), но чтобы не возникfло путаницы?
Может кто встречался с подобным и знает как это реализовать?
Нужно подумать... Приводить по товару и операциям к временным таблицам, из низ выбирать DISTINCT'ом, а уж там выбирать в окончательный результат.
Вопрос интересный. Стоит задуматься.
У меня примерно такая же была идея, сделать вывод в два шага, одни фильтровать операции, а другим фильтровать название... но что-то никак не могу прийти к реализации это... :(
Писать особо некогда, поэтому сухой теорией:)
Выбираем все названия (через DISTINCT) из него лепим массив (пусть будет $array). Далее выбираем все продажи и делаем что-то типа
Писать особо некогда, поэтому сухой теорией:)
Выбираем все названия (через DISTINCT) из него лепим массив (пусть будет $array). Далее выбираем все продажи и делаем что-то типа
Это средствами PHP. Так, конечно, можно сделать, или, хотя бы смоделировать SQL-движения... Мне, например, действительно понятнее, как это сделать на PHP. Но вопрос-то, если мне что-то опять не изменяет после праздника, шёл про средства MySQL?.. Или я опять что-то разглядел не просыпаясь?
Это средствами PHP. Так, конечно, можно сделать, или, хотя бы смоделировать SQL-движения... Мне, например, действительно понятнее, как это сделать на PHP. Но вопрос-то, если мне что-то опять не изменяет после праздника, шёл про средства MySQL?.. Или я опять что-то разглядел не просыпаясь?
Я отталкивался от
. Хотя 3 часа сна наверное дают о себе знать...
Писать особо некогда, поэтому сухой теорией:)
Выбираем все названия (через DISTINCT) из него лепим массив (пусть будет $array). Далее выбираем все продажи и делаем что-то типа
А по-подробнее можно?
А по-подробнее можно?
Код писать не буду, но смысл попробую разжевать.
1.Выбираем из базы только названия (SELECT DISTINCT name FROM base);
2. Из результата делаем массив который состоит только из имён и они не повторяются.
3. Делаем выборку всех проданных товаров.
4. Далее действуем примерно так:
$result // Это результат запроса к базе из пункта №3
while($row = mysql_fetch_row($result)) {
/*В этом месте через if сравниваешь названия из $array[] с полученными из $row. Если они совпадают, то просто плюсуешь значение к $array.
В результате должен получится массив вида
$array['name']['pay'], где name - это название товара, а pay - это общая сумма.
*/
}
5. C приходом просто повторяем операцию.
Разжевал на сколько мог, далее сам.
Код писать не буду, но смысл попробую разжевать.
1.Выбираем из базы только названия (SELECT DISTINCT name FROM base);
2. Из результата делаем массив который состоит только из имён и они не повторяются.
3. Делаем выборку всех проданных товаров.
4. Далее действуем примерно так:
$result // Это результат запроса к базе из пункта №3
while($row = mysql_fetch_row($result)) {
/*В этом месте через if сравниваешь названия из $array[] с полученными из $row. Если они совпадают, то просто плюсуешь значение к $array.
В результате должен получится массив вида
$array['name']['pay'], где name - это название товара, а pay - это общая сумма.
*/
}
5. C приходом просто повторяем операцию.
Разжевал на сколько мог, далее сам.
Спасибо за помощь!!!!! :!!!:
Разберусь :)