cfoutput group цены - PullRequest
       1

cfoutput group цены

0 голосов
/ 15 августа 2011

Я хочу сгруппировать цены по идентификатору продукта, как здесь: http://s44.radikal.ru/i106/1108/57/33380d0557f4.jpg, но я не могу сгруппировать их должным образом, должен быть один продукт и несколько цен, а не одни и те же продукты и разные цены для каждого , пока с помощью Скотта Строза я написал код:

запрос:

<cfquery name="get_products" datasource="#dsn3#">
    SELECT DISTINCT P.PRODUCT_ID,P.PRODUCT_NAME,PS.MONEY,PR.PRICE
    FROM PRODUCT P
        JOIN PRICE_STANDART PS ON P.PRODUCT_ID = PS.PRODUCT_ID
        JOIN PRICE PR ON P.PRODUCT_ID = PR.PRODUCT_ID
    WHERE P.IS_SALES=1 AND P.IS_PURCHASE=1 AND P.IS_INTERNET=1 AND PS.PURCHASESALES=1 AND PS.PRICESTANDART_STATUS=1 
    <cfif len(trim(attributes.product_cat)) and len(attributes.product_code)>AND P.PRODUCT_CODE LIKE '#attributes.product_code#%'</cfif>         
    <cfif isdefined('attributes.product_id') and len(attributes.product_id)>AND P.PRODUCT_ID=#attributes.product_id#</cfif>
    GROUP BY P.PRODUCT_ID,PR.PRICE,P.PRODUCT_NAME,PS.MONEY
    ORDER BY PR.PRICE DESC
</cfquery>

и таблица:

<table cellpadding="3" cellspacing="1" class="color-border" width="100%">
    <tr class="color-header">
        <td width="30" class="header_bold">No</td>
        <td><b>Ürün</b></td>
        <td class="header_bold" width="80">Liste fiyatı</td>
        <td class="header_bold" width="80">Bayı 1</td>
        <td class="header_bold" width="80">Bayı 2</td>
        <td class="header_bold" width="80">Bayı 3</td>
        <td class="header_bold" width="80">Bayı 4</td>
        <td class="header_bold" width="25">Para</td>
    </tr>
    <cfoutput query="get_products" startrow="#attributes.startrow#" maxrows="#attributes.maxrows#" group="product_id">
        <tr height="20" onMouseOver="this.className='color-light';" onMouseOut="this.className='color-row';" class="color-row">
            <td>#currentrow#</td>   
            <td>#product_name#</td>
            <cfoutput group="price"><td>#tlformat(price,2)#</td></cfoutput>
            <td align="center">#MONEY#</td>
        </tr>
    </cfoutput>
</table>

спасибо всем ребята за помощь!

1 Ответ

3 голосов
/ 15 августа 2011

Предполагая, что у вас есть запрос, который выглядит следующим образом:

product_id, product_name, price
1, 'test', 100
1, 'test', 200
1, 'test', 300
2, 'test2', 100
2, 'test2', 200
2, 'test2', 300

Следующий код будет группировать по идентификатору продукта и выводить каждую отдельную цену

<cfoutput query="get_products" group="product_id">
    #product_name#
    Prices:
    <cfoutput>
        #price#<br>
    </cfoutput>
</cfoutput>

Теперь сгруппировать поsql не имеет ничего общего с группой coldfusions в cfoutput.Это удобный метод для создания уникальных строк.Поэтому, когда coldfusion видит два идентичных идентификатора «product_id», он запускает вложенный цикл cfoutput.

Вы можете сделать это для любого количества уровней, но в вашем случае их будет только два.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...