1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Горе от ума. Работа php и mysql с отчетами

Тема в разделе "Web Coding", создана пользователем RALF, 2 фев 2007.

Статус темы:
Закрыта.
Модераторы: latteo
  1. RALF

    RALF черный рыцарь

    Регистр.:
    1 май 2006
    Сообщения:
    114
    Симпатии:
    25
    Добрый день или вечер, я уже запутался. Сижу тут …. Книги по php and mysql рядом. Есть вот такая вот проблемка:

    Вопрос по поводу формирования отчетов средствами php and mysql. Задача была следующая:
    Сформировать отчеты приход/расход ТМЦ за период. Форма отчета вот такая:

    Ведомость по остаткам ТМЦ на складах
    С 01.01.07 по 05.01.07
    Номенклатура
    | Ед.| Начальный остаток |Приход | Расход | Конечный остаток |
    Портянки шт. 1,000 3,000 4,000
    Каша шт. 19,000 19,000
    Тарелки
    шт. -64,000 -64,000
    Еда
    шт. 120,000 20,000 100,000

    Таблица движений, из которой должны браться значения:

    CREATE TABLE `dvigenie` (
    `id` int(60) NOT NULL auto_increment,
    `adressid` int(60) unsigned default NULL,
    `tovarid` int(60) unsigned default NULL,
    `price` float(6,2) default NULL,
    `kolvo` int(60) NOT NULL,
    `summa` float(6,2) default NULL,
    `data` date default NULL,
    PRIMARY KEY (`id`)
    )

    --
    -- Дамп данных таблицы `dvigenie`
    --

    INSERT INTO `dvigenie` VALUES (60, 27, 12, 3.00, 33, 99.00, '2007-01-26');
    INSERT INTO `dvigenie` VALUES (59, 27, 10, 1.00, 55, 55.00, '2007-01-26');
    INSERT INTO `dvigenie` VALUES (58, 27, 5, 20.00, 20, 400.00, '2007-01-26');
    INSERT INTO `dvigenie` VALUES (61, 27, 10, 2.00, -25, 50.00, '2007-01-26');

    Не знаю как правильно сформировать запрос, чтобы из таблицы движений формировался такой вот отчет. Т.е. форма для запуска отчета такая вот:
    Отчет :: Приход/Расход за период

    Наименование склада: Здесь combobox для выбора склада
    Приход/Расход за определенную дату: Здесь поле для ввода даты ... кнопа с календарик
    Приход/Расход за период: Здесь два поля.... для определения периода...
    Ниже кнопка сформировать отчет.


    Добавлено через 15 минут
    Пользователь Выбирает склад, по которому нужно сделать отчет. Выбирает либо Приход/Расход за определенную дату, либо Приход/Расход за период. После нажатия кнопки Сформировать отчет. Происходит следующее: Выбираются только те записи, которые подаются условию(в функции:(
    PHP:
    function select_otchet_prihod ($adressid$date
    {
    $conn db_connect(); 
    $query ="Select * from dvigenie where adressid='$adressid' and data<'$date' "
    $result =mysql_query($query);
     if (!
    $result
    return 
    false
    С этим вроде всё нормально и с экспортом в Exel тоже вроде всё в норме, а вот как сложить суммы идентичных товаров я не знаю. Точнее я наверно ламер, и не могу создать запрос или пару запросов, чтобы после этого селекта всё посчиталось и заполнилось в отчет…. Может все расчеты делать во временной таблице…. Вообщем … незнаю… поэтому и прошу помощи…
    Спасибо братцы за Ваши советы!
     
  2. MisterX

    MisterX Постоялец

    Регистр.:
    10 ноя 2006
    Сообщения:
    101
    Симпатии:
    7
    А чем не устраивает SELECT SUM(summa) WHERE ...
     
  3. RALF

    RALF черный рыцарь

    Регистр.:
    1 май 2006
    Сообщения:
    114
    Симпатии:
    25
    Sum Очень хорошо работает, но нужно, чтобы считались только те товары, которые идентичные .... т.е. нужно, чтобы он прошелся по всем записям и выбрал идентичные и сложил их. Вот:confused:
     
  4. MisterX

    MisterX Постоялец

    Регистр.:
    10 ноя 2006
    Сообщения:
    101
    Симпатии:
    7
    Что значит идентичные ?
     
  5. RALF

    RALF черный рыцарь

    Регистр.:
    1 май 2006
    Сообщения:
    114
    Симпатии:
    25
    Вообщем помогло
    PHP:
       $query "select tovarid,SUM(kolvo)
                 from dvigenie GROUP BY tovarid"
    ;
    Идентичные - значит одинаковые.
    В таблице движений одинаковые товары должны складываться. сработало SUM. Но дальше остается такая вот проблема, чтобы выделить все строки до определенной даты, чтобы вычислить начальный остаток. Как поставить условие where data<='$date' ... Никак не могу, чтобы оно заработало
     
  6. MisterX

    MisterX Постоялец

    Регистр.:
    10 ноя 2006
    Сообщения:
    101
    Симпатии:
    7
    where date <= '2007-03-02 15:34:14'
     
  7. Slayter

    Slayter

    Регистр.:
    8 апр 2006
    Сообщения:
    232
    Симпатии:
    52
    RALF - это просто ******. честное слово. вы бы хоть каким-нибудь макаром почитали php.net! ***ть мануалы чтоли не для вас придуманы? И потом такая армия вопросов.
    *** Вы прежде чем кодить начнете должны иметь представление о разнице
    <? и <?php
    " и '
    просто жуть. прошу прощения за мой французский, но каков вопрос - таков и ответ.
     
  8. MisterX

    MisterX Постоялец

    Регистр.:
    10 ноя 2006
    Сообщения:
    101
    Симпатии:
    7
    Вообще-то вопрос был скорее по SQL нежели PHP. И лучше ему читать мануал по MySQL...
     
  9. RALF

    RALF черный рыцарь

    Регистр.:
    1 май 2006
    Сообщения:
    114
    Симпатии:
    25
    Slayter, Вы не до оцениваете своих собеседников. и разницу между <? и <?php я знаю. И на читку мануалов послылать не надо. Можете помочь - СПАСИБО. Не можете, не засоряйте тему определениями о кодинге. Кодинг пока есть моя жизнь. Просто это раньше был просто кодинг, а теперь web-кодинг. :-]
     
  10. Slayter

    Slayter

    Регистр.:
    8 апр 2006
    Сообщения:
    232
    Симпатии:
    52
    да вы чо? покурите всё же мануал :)
    пока просто смешно читать - если человек даже понятия не имеет о том, что в sql запросах цифры можно юзать без кавычек - то .... :smmne:
     
Статус темы:
Закрыта.