私の「製品編集」ページには、ユーザーが製品に関連付けることができるすべての「ドキュメント」(テーブルから)を選択リストが表示しています。別のクエリでクエリ結果がループしますか?
<select name="pdid1" size="15" multiple id="pdid1" style="width:450px">
<cfoutput query="get">
<option value="#get.pdid#">
#pdname#
</option>
</cfoutput>
</select>
ドキュメントがすでにこの製品に関連付けられている場合、私はそれが<select>
リストに表示したくないん。
次のコードは、選択リストのテーブルで最初に見つかったドキュメントのみを削除しています。したがって、最初のクエリを2番目のクエリからすべての一致を削除することを確認するために、最初のクエリを '内側'にループする必要があります。
<!---Checks for any docs already associated with this product--->
<cfquery name="find" datasource="#application.dsn#">
SELECT * FROM prodrelated
WHERE prprodid = '#url.id#'
</cfquery>
<!---Now remove any docs from the Select List query that are already associated with this product--->
<cfquery name="get" datasource="#application.dsn#">
SELECT * FROM productdocs
WHERE NOT productdocs.pdid = '#find.pritemid#'
</cfquery>
どのように私は<select>
リストがすでにこの製品に関連付けられているすべてのドキュメントを表示していないことを確認することができますか?
valueList(find.pritemid)
が作成し値
ありがとう、マット。それは閉じているだけだった ")"と魅力を働いた。ヤフー! –
@ BlueDaNoob - 2つのクエリを使用する唯一の理由はフィルタリングされていますか?動作しますが、外部結合を使用すると、同じことをより効率的に実行できます。 – Leigh