كيفية طباعة كل نتيجة من دون استخدام النتائج.columnname في كولد فيوجن

StackOverflow https://stackoverflow.com/questions/1642831

  •  10-07-2019
  •  | 
  •  

سؤال

كيفية طباعة كل نتيجة من دون استخدام النتائج.columnname في كولد فيوجن

على سبيل المثال:-

لدي <cfquery name="getProductId"> select productId from product </cfquery>

في الجدول المنتج لدي 2 الأعمدة مع اسم_المنتج و Product_id.

كيف يمكنني طباعتها دون استخدام getProductId.اسم_المنتج getProductId.Product_id

شكرا

هل كانت مفيدة؟

المحلول

وماذا تحاول تحقيقه؟ إذا كنت تبحث عن وسيلة لحسابيا إخراج نتائج الاستعلام يستند إلى استعلام أسماؤهم كنت لا تعرف، مثل ...

العمود
<cfquery name="queryName" ...>
    select * from product
</cfquery>

... ثم يمكنك استخدام المتغير queryName.ColumnList، والتي ترجع قائمة مفصولة بفواصل لجميع أسماء الأعمدة. هل يمكن تكرار في وقت لاحق على هذه القائمة، والإخراج كما هو مطلوب.

وعلى سبيل المثال، للحصول على الناتج جدول HTML بسيط:

<table border=1>
    <cfloop from="0" to="#queryName.RecordCount#" index="row">
        <cfif row eq 0>
            <tr>
                <cfloop list="#queryName.ColumnList#" index="column" delimiters=",">
                    <th><cfoutput>#column#</cfoutput></th>  
                </cfloop>
            </tr>
        <cfelse>
            <tr>
                <cfloop list="#queryName.ColumnList#" index="column" delimiters=",">
                    <td><cfoutput>#queryName[column][row]#</cfoutput></td>
                </cfloop>
            </tr>
    </cfif>
    </cfloop>
</table>

والاعتذار إذا لم يكن هذا ما كنت تعني!

نصائح أخرى

يمكنك الرجاء توضيح ماذا يعني "دون استخدام اسم العمود"?

ربما كنت ترغب في استخدام getProductId.ColumnList الخاصية ؟

مثال صغير من العمر كود تحويل الاستعلام إلى مجموعة (قليلا جردت التفاصيل تغيرت أسماء فار ، ولكن يظهر الفكرة):

    <cfset arrRecordSet = ArrayNew(1)>

    <cfloop query="qGetSomething">
        <cfset record = StructNew()>
        <cfloop list="#qGetSomething.ColumnList#" index="field">
            <cfset record[field] = qGetSomething[field][qGetSomething.CurrentRow]>
        </cfloop>
        <cfset ArrayAppend(arrRecordSet,record)>
    </cfloop>

تحرير:تعزيز سبيل المثال للتخلص من الصف متغير بشكل صحيح لاحظت في التعليقات.

والاستعلام لجدول HTML؟ هناك علامة لذلك!

و<CFTable> FTW!

http://www.cfquickdocs.com/cf8/#cftable :)

لتوسيع على تعليقي إلى استجابة كريس، وهنا صيغة أبسط مع مفقودة علامات THEAD / TBODY وأضاف:

<cfoutput>
    <table>
        <thead>
            <tr>
                <cfloop index="ColName" list="#MyQuery.ColumnList#">
                    <th>#ColName#</th>
                </cfloop>
            </tr>
        </thead>
        <tbody>
            <cfloop query="MyQuery">
                <tr>
                    <cfloop index="ColName" list="#MyQuery.ColumnList#">
                        <td>#MyQuery[ColName][MyQuery.CurrentRow]#</td>
                    </cfloop>
                </tr>
            </floop>
        </tbody>
    </table>
</cfoutput>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top