Cómo imprimir todos los resultados sin el uso de los Resultados.columnname en ColdFusion

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

  •  10-07-2019
  •  | 
  •  

Pregunta

Cómo imprimir todos los resultados sin el uso de los Resultados.columnname en ColdFusion

por ejemplo:-

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

En la Tabla de Producto, tengo 2 columnas con product_name y Product_id.

¿Cómo puedo imprimir sin usar getProductId.product_name getProductId.Product_id

Gracias,

¿Fue útil?

Solución

¿Qué estás tratando de lograr?Si usted está buscando una manera de cómputo de salida de los resultados de la consulta basada en una consulta, cuyos nombres de columna no sé, como...

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

...a continuación, puede utilizar la queryName.ColumnList variable, que devuelve una lista separada por comas de todos los nombres de columna.Usted podría, posteriormente, iterar a través de esta lista, y la salida, como se requiere.

Por ejemplo, para conseguir una simple tabla HTML de salida:

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

Disculpas si este no es lo que usted quiere decir!

Otros consejos

¿Puede aclarar qué significa " sin usar el nombre de columna " ;?

¿Quizás quiera usar el atributo getProductId.ColumnList ?

Pequeño ejemplo de mi antiguo código que convierte la consulta a la matriz (detalles un poco despojados y nombres de var cambiados, pero muestra la idea):

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

EDITAR: ejemplo mejorado para deshacerse de la variable de fila, como se notó correctamente en los comentarios.

¿Consulta a la tabla HTML? hay una etiqueta para eso!

<CFTable> FTW!

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

Para ampliar mi comentario a la respuesta de Chris, aquí está la versión más simple con las etiquetas thead / tbody faltantes agregadas:

<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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top