Comment imprimer tout le résultat sans utiliser Results.columnname dans ColdFusion

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

  •  10-07-2019
  •  | 
  •  

Question

Comment imprimer tous les résultats sans utiliser Results.columnname dans ColdFusion

par exemple: -

j'ai <cfquery name="getProductId"> select productId from product </cfquery>

Dans la table des produits, j'ai 2 colonnes avec nom_produit et ID_produit.

Comment puis-je les imprimer sans utiliser     getProductId.nom_produit     getProductId.Product_id

Merci,

Était-ce utile?

La solution

Qu'est-ce que vous essayez d'atteindre? Si vous cherchez un moyen de générer par calcul les résultats d'une requête en fonction d'une requête dont vous ne connaissez pas les noms de colonne, tels que ...

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

... alors vous pouvez utiliser la variable queryName.ColumnList qui renvoie une liste de tous les noms de colonnes, séparés par des virgules. Vous pouvez par la suite parcourir cette liste et générer les résultats souhaités.

Par exemple, pour obtenir une sortie de tableau HTML simple:

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

Toutes mes excuses si ce n'est pas ce que vous vouliez dire!

Autres conseils

Pouvez-vous préciser ce que signifie & "sans utiliser le nom de colonne &";

?

Peut-être souhaitez-vous utiliser l'attribut getProductId.ColumnList ?

Petit exemple de mon ancien code qui convertit une requête en tableau (détails un peu dépouillés et noms de variables modifiés, mais montrant l'idée):

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

EDIT: exemple amélioré pour se débarrasser de la variable de ligne, comme indiqué correctement dans les commentaires.

Requête vers un tableau HTML? il y a une balise pour ça!

<CFTable> FTW!

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

Pour développer mon commentaire sur la réponse de Chris, voici la version simplifiée avec les balises manquantes thead / tbody ajoutées:

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top