У меня есть несколько полей в базе данных с именами p1, p2, p3 и так далее, они возвращаются запросом GetUser. Я хочу проверить их значения, но у меня возникают следующие ошибки кода. Я уверен, что мое форматирование «GetUser.p#x#» неверно, но я не могу понять, как это сделать. Любая помощь приветствуется.
У меня есть следующий код, который работает...
<cfquery name="GetUser">
SELECT id, p00, p01, p02, p03, p04, p05, p06
FROM users
where id = #session.user_id#
</cfquery>
<cfoutput query="GetUser">
<cfif p01 is 1><li>Post 01</li></cfif>
<cfif p02 is 1><li>Post 02</li></cfif>
<cfif p03 is 1><li>Post 03</li></cfif>
<cfif p04 is 1><li>Post 04</li></cfif>
<cfif p05 is 1><li>Post 05</li></cfif>
<cfif p06 is 1><li>Post 06</li></cfif>
</cfoutput>
Естественно, это ужасный способ сделать это, поэтому я хотел сделать цикл следующим образом, чтобы добиться того же результата:
<cfloop index = "x" from = "1" to = "6">
<cfif GetUser.p0#x# is 1><li>Post #x#</li></cfif>
</cfloop>
Но это ошибки. Поэтому я пытаюсь понять, как этого добиться.
// Есть аналогичный вопрос, который предполагает, что требуется queryName["columnName"][rowNumber]. Это другое и более простое.
getUser['p0' +x]
— это синтаксис динамической переменной в вашем запросе. - person Matt Busche   schedule 24.07.2016