我在從ColdFusion表單獲取信息到操作頁面並顯示所需內容方面遇到了一些麻煩。基於從表單中選擇的產品,我必須顯示此產品的選定產品和公司名稱。ColdFusion SELECT通過表單中的INNER JOIN
這裏是我的表單頁面的代碼:
<form action="productinfo.cfm" method="post">
<cfoutput query = "getProducts">
...
<input type="radio" name="prods" value="#getProducts.productname#">
#getProducts.productname#
...
</cfoutput>
<input type="submit" value="Submit">
</form>
這裏是我的行動網頁代碼:
<cfset prodname = form.prods>
<cfquery name = "JoinProdSupp" datasource = "jeb48_northwind">
SELECT Products.ProductName, Suppliers.CompanyName
FROM Suppliers INNER JOIN Products
ON Suppliers.SupplierID = Products.SupplierID
WHERE (((Products.ProductName)='#prodname#'));
</cfquery>
我不完全知道如何輸出查詢的內容。
當您運行查詢時,出於各種原因,您應該使用查詢參數。在你的輸出代碼中,由於你的cfoutput標籤中有一個查詢屬性,因此不需要使用查詢名稱來限定變量。 – 2014-10-04 09:19:10
@DanBracuk是正確的,並要清楚,他的意思這樣.. WHERE(((Products.ProductName)= ))。 CFQueryParam是針對sql注入的關鍵防禦。 http://help.adobe.com/livedocs/coldfusion/8/htmldocs/help.html?content=Tags_p-q_18.html。還要注意標記周圍缺少引號,cfqueryparam根據所選的cfsqltype指定添加引號。 –
2014-10-04 16:09:03
查詢名稱確實是不必要的,但如果該cfoutput塊增長並且變得更加複雜,那麼將它放在那裏真的很不錯,尤其是當其他人出現並試圖找出變量來自何處時。 – Barry 2014-10-08 16:26:04