Hello, I am newbie in Coldfusion development and I have a question:

I must make a application where I have to use a parameter in a database (and not written in the code).

Example: I have to show a text of a table with a "subtext" of other table. So I do this:

Table1:
id = 1
text = "This is an #qry_2.subtext#"

Table2:
id = 1
subtext = "example"

<cfquery datasource="#application.DSN#" name="qry_1">
      SELECT text FROM table1 WHERE id = 1
   </cfquery>

<cfquery datasource="#application.DSN#" name="qry_2">
      SELECT subtext FROM table2 WHERE id = 1
   </cfquery>

<cfoutput>#qry_1.text#</cfoutput>

But only appear "This is an #qry_2.subtext#", and not "This is an example". The Coldfusion can´t read the ## of the string of database and put the subtext of table2.

There is a solution to make the Coldfusion read a ## parameter of a database with process it?

Obs.: Sorry my poor english. I am brazilian. :)

Sorry, but what you have there is not going to work. Trying to have dynamic content inside text stored in a database table is usually done with percent-sign delimited placeholders (or whatever your delimiter of choice happens to be). Here is an example:

First of all replace the text "#qry_2.subtext#" in table1 with "%placeholder%".
Store the value of qry_1.text in a temporary variable. I usually go with strTemp.
Replace the instances of %placeholder% with the value of qry_2.subtext.
Example:

<cfset strTemp = ReplaceNoCase(strTemp,"%placeholder%",qry_2.subtext,"all")>

Output strTemp.

I have used this technique on numerous occasions in the past and it always works for me.

The Replace function works! Thank you!

I had a similar problem, and just wrapped the database field contents in:

#evaluate(de(dbfieldcontent))#

This works like a dream.

Most of the time, replace() is more efficient.

Geez.. this thread's like 3 years old!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.