-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) 字段中。我需要这个查询来了解当我的日志表包含来自 useragent 表的“字符串”时,它将显示与 csuseragent 表中的名称一致的名称。所以我从两个表中提取查询,WHERE 必须是“包含”。这甚至可能吗?

这是我的表格示例-

用户代理表 -

姓名 | 细绳

浏览器 | 微星 FFox
| 火狐
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 回答