Вывод количества строк

Тема в разделе "NetCat", создана пользователем max-sparker, 7 июл 2008.

Статус темы:
Закрыта.
  1. max-sparker

    max-sparker

    Регистр.:
    9 мар 2008
    Сообщения:
    166
    Симпатии:
    39
    Доброе время суток...

    Подскажите пожалуйста.... вот у меня

    Раздел
    - подраздел 1
    - подраздел 2
    - подраздел 3
    .....................
    - подраздел n

    Мне нужно вывести в макете дизайна все подразделы.... + чтобы рядом у каждого подраздела стояло кол-во значений в нем..., т.е. количество строк, компонент у всех подразделов одинаковый, т.е. таблица одна... нужно чтобы выглядело так:

    Подраздел 1 [5]
    Подраздел 2 [16]
    Подраздел 3 [7] и т.д.

    Не подскажите как это все выразить?
     
  2. zullek

    zullek Создатель

    Регистр.:
    28 янв 2008
    Сообщения:
    39
    Симпатии:
    7
    Готового варианта не подскажу, поскольку не реализовывал подобное, но в руководстве разработчика для NetCat 3.0 на 46 странице есть описание решения похожей задачи.

    9. Количество новинок в каталоге

    Среди стандартных функций NetCat нет функции, которая бы выводила количество товаров в каком-либо разделе с какими-либо условиями выборки, поэтому данную выборку придется формировать прямым запросом к базе.

    Предположим, под новыми товарами мы подразумеваем товары, добавленные сегодня. Компонент «Товары» имеет номер 57, т.е. его экземпляры хранятся в таблице Message57. SQL-запрос к базе в этом случае будет выглядеть так:

    SELECT a.Subdivision_Name AS name, b.Sub_Class_ID AS id,
    count(c.Message_ID) AS cnt FROM Subdivision AS a, Sub_Class
    AS b, Message57 AS c where a.Subdivision_ID=b.Subdivision_ID
    AND b.Sub_Class_ID=c.Sub_Class_ID AND
    DATE(c.Created)=CURDATE() GROUP BY name ORDER BY name

    Отформатируем результаты запроса при помощи соответствующей функции NetCat:

    ".listQuery("select a.Subdivision_Name as name,
    b.Sub_Class_ID as id, count(c.Message_ID) as cnt from
    Subdivision as a, Sub_Class as b, Message57 as c where
    a.Subdivision_ID=b.Subdivision_ID and
    b.Sub_Class_ID=c.Sub_Class_ID and DATE(c.Created)=CURDATE()
    group by name order by name", "<li>\$data[name]: <b>\
    $data[cnt]</b>")."
     
  3. max-sparker

    max-sparker

    Регистр.:
    9 мар 2008
    Сообщения:
    166
    Симпатии:
    39
    Не... это не то, здесь он выводит список добавленного товара за сегодняшний допустим день, ну или вообще полный список.... а мне просто надо количество вывести и все :(
     
  4. max-sparker

    max-sparker

    Регистр.:
    9 мар 2008
    Сообщения:
    166
    Симпатии:
    39
    Все разобрался, тут в принципе ничего сложного нет :)

    Например:

    ".listQuery("SELECT COUNT(*) AS count FROM Message97 WHERE Subdivision_ID = 516 AND Checked=1","\$data[count]")."

    где Subdivision_ID = 516 - это номер раздела, ну и Message97 - номер компонента
     
Статус темы:
Закрыта.