So drucken Sie das gesamte Ergebnis, ohne die Ergebnisse zu verwenden.Columnname in ColdFusion

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

  •  10-07-2019
  •  | 
  •  

Frage

So drucken Sie das gesamte Ergebnis, ohne die Ergebnisse zu verwenden.Columnname in ColdFusion

für Ex:-

Ich habe <cfquery name="getProductId"> select productId from product </cfquery>

In der Produkttabelle habe ich 2 Spalten mit product_name und product_id.

Wie kann ich sie drucken, ohne GetProductid.product_name getProductid.product_id zu verwenden

Vielen Dank,

War es hilfreich?

Lösung

Was versuchst du zu erreichen? Wenn Sie nach einer Möglichkeit suchen, die Ergebnisse der Abfrage basierend auf einer Abfrage auszuführen, deren Spaltennamen Sie nicht kennen, wie beispielsweise ...

<cfquery name="queryName" ...>
    select * from product
</cfquery>

... dann können Sie die verwenden queryName.ColumnList Variable, die eine von Kommas getrennte Liste aller Spaltennamen zurückgibt. Sie können anschließend diese Liste iterieren und nach Bedarf ausgeben.

Zum Beispiel, um eine einfache HTML -Tabellenausgabe zu erhalten:

<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>

Entschuldigung, wenn das nicht das ist, was Sie gemeint haben!

Andere Tipps

Können Sie bitte klarstellen, was "ohne den Spaltennamen" bedeutet?

Vielleicht möchten Sie die verwenden GetProductid.ColumnList Attribut?

Kleines Beispiel aus meinem alten Code, der die Abfrage in das Array konvertiert (etwas entzogene Details und VAR -Namen geändert, aber die Idee anzeigt):

    <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>

Bearbeiten: Verbessertes Beispiel, um Zeilenvariable zu entfernen, wie in Kommentaren korrekt bemerkt.

Abfrage nach HTML -Tabelle? Dafür gibt es ein Tag!

<CFTable> Ftw!

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

Um meinen Kommentar zu Chris 'Antwort zu erweitern, hier ist die einfachere Version mit den fehlenden Thead/Tbody -Tags hinzugefügt:

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top