-1

ここに私が取り組んでいる私のコードがあります -

<CFOUTPUT>

<CFQUERY NAME="getParser" DATASOURCE="LibraryDB" DBTYPE="ODBC">
select name
from parser_acronym 
where init = '#source#'
</CFQUERY>


<CFQUERY NAME="getUAcode" DATASOURCE="LibraryDB" DBTYPE="ODBC"> 
SELECT name FROM useragent 
WHERE Logs.csuseragent contains '#%useragent.string%#' </CFQUERY>
</CFQUERY>

<CFSET src = "#getParser.name#">
<CFSET ua = "#getUAcode.name#">

<CFIF (DailyCount MOD 2) EQ 0>
<CFSET via = '<td style="background-color: DBEFB6;">#src#<br><font color="blue">#ua#</font></td>'>
<CFELSE>
<CFSET via = '<td>#src#<br><font color="blue">#ua#</font></td>'>
</CFIF>
</CFOUTPUT>

getParser クエリを使用してテーブルからデータを取得しています。これは #src# として表示されます - これは正しく動作します。

ここで、さらに情報を追加する必要があります。これは #ua# (ユーザーエージェント) フィールドに表示されます。ログ テーブルに useragent テーブルの「文字列」が含まれている場合、csuseragent テーブルの名前と一致する名前が表示されることを理解するには、このクエリが必要です。したがって、2 つのテーブルからクエリを取得していますが、WHERE は「含む」である必要があります。これは可能ですか?

ここに私のテーブルの例があります -

ユーザーエージェントテーブル -

名前 | ストリング

いえ | msie
FFox | ファイアフォックス
iPad | iPad

ログ テーブルには csuseragent があります。これは通常の UA 文字列で、大量のテキストで満たされていますが、ユーザーが何を閲覧しているかを示す定義語が含まれています。

CSUSERAGENT
etcetc_msie
etcetc_firefox
etcetc_ipad
etcetc_msie
etcetc_msie

4

2 に答える 2

1

フォローするのに少し苦労しましたが、これがあなたが望むものだと思います:

<cfquery name="getUACode">
    SELECT UA.name AS UA, PA.name AS src
    FROM parser_acronym PA
    LEFT JOIN Useragent UA ON PA.name LIKE '%' + UA.name + '%'
    WHERE PA.init = <cfqueryparam value="#source#" cfsqltype="cf_sql_varchar">
</cfquery>

<cfoutput>
    <cfif NOT dailycount MOD 2>
        <cfset via = '<td class="myBgColor">#src#<br><span class="blueColor">#ua#</span></td>'>
    <cfelse>
        <cfset via = '<td>#src#<br><span class="blueColor">#ua#</span></td>'>
    </cfif>
</cfoutput>
于 2013-05-09T18:21:57.867 に答える
0

次のコードは、答えの始まりです。getUA クエリのクエリを定義しなかったため、条件と変数が何であり、どこから来たのかが少しわかりませんでした。

一般的に、私は変数 UA を理解していません。

<CFQUERY NAME="getParser" DATASOURCE="LibraryDB" DBTYPE="ODBC">
select name
from parser_acronym 
where init = <cfqueryparam cfsqltype="cf_sql_varchar" value="#source#">
</CFQUERY>

<CFQUERY NAME="getUAcode" DATASOURCE="LibraryDB" DBTYPE="ODBC"> 
SELECT name 
FROM useragent 
WHERE Logs.csuseragent like <cfqueryparam cfsqltype="cf_sql_varchar" value="%#useragent.string#%#">
</CFQUERY>    

<CFSET src = "#getParser.name#">
<CFSET ua = "#getUAcode.name#">


<CFOUTPUT>
    <CFIF (DailyCount MOD 2) EQ 0>
        <CFSET via = '<td style="background-color: DBEFB6;">#src#<br><font color="blue">#ua#</font></td>'>
    <CFELSE>
        <CFSET via = '<td>#src#<br><font color="blue">#getUacode(ua)#</font></td>'>
    </CFIF>
</CFOUTPUT>
于 2013-05-09T18:17:52.330 に答える