cfoutput внутри cfoutput - PullRequest
       1

cfoutput внутри cfoutput

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

Я хочу создать таблицу со списком продуктов с каждым продуктом, его прайс-листом, но проблема в том, что я не могу объединить два запроса, потому что я хочу, чтобы один вывод был вставлен в другой вывод, но достичь этого невозможнопросто говоря их таким образом, я знаю, что мне нужно объединить 2 sql запроса, чтобы заставить их работать должным образом, плюс для каждого продукта в любом случае есть 4 цены, чтобы сделать его более понятным, я сделал скриншот так, как я хочусм: http://s44.radikal.ru/i106/1108/57/33380d0557f4.jpg и вот запросы:

Запрос товара:

<cfquery name="get_products" datasource="#dsn3#">   SELECT DISTINCT P.*,PS.MONEY,PS.PRICE   FROM PRODUCT P,PRICE_STANDART PS    WHERE       P.IS_SALES=1        AND P.IS_PURCHASE=1         AND P.IS_INTERNET=1         AND P.PRODUCT_ID=PS.PRODUCT_ID      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>     ORDER BY PS.PRICE DESC </cfquery>

Запрос цены:

<cfquery name="get_prices" datasource="#dsn3#">
        SELECT PRICE, PRODUCT_ID FROM PRICE WHERE PRODUCT_ID = #PRODUCT_ID#
    </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#">
        <tr height="20" onMouseOver="this.className='color-light';" onMouseOut="this.className='color-row';" class="color-row">
            <td>#currentrow#</td>
            <td>#product_name#</td>
            <td>#tlformat(price,2)#</td>
            <td>#tlformat((price*0.5),2)#</td> <!---this is fixed price! --->
            <td>#tlformat((price*0.49),2)#</td> <!---this is fixed price! --->
            <td>#tlformat((price*0.475),2)#</td> <!---this is fixed price! --->
            <td>#tlformat((price*0.45),2)#</td> <!---this is fixed price! --->
            <td align="center">#MONEY#</td>
        </tr>
    </cfoutput>
</table>

объяснение "это фиксированная цена!"означает, что я вставил их и посчитал их самостоятельно, но это следует изменить из прайс-листа, который я хочу интегрировать, но я не могу ... спасибо всем за помощь!

1 Ответ

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

Вы действительно должны объединить запросы:

<cfquery name="get_products" datasource="#dsn3#">   
SELECT DISTINCT P.*,PS.MONEY,PS.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>     
ORDER BY PS.PRICE DESC 
</cfquery>

Если таблица PRICE возвращает более одной цены для каждого продукта, вы можете использовать атрибут GROUP. Для получения дополнительной информации об этом, посмотрите здесь: http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7ff6.html

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