微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql 的数据表似乎是错误的

如何解决mysql 的数据表似乎是错误的

我有用于 MysqL 的 Coldfusion 版本 10 的数据表,但似乎有一些我无法解决的语法错误,而且分页和排序也无法正常工作,它往往会保持处理图标即使在控制台显示 200,它也发生在搜索

我的 CFM 代码

<cffunction name="getDataForTable" access="remote" returnformat="json" returntype="any" output="false"> 
    <cfargument name="inParam" type="any" default="#{}#">
    <cfset var isQueryUsed = structkeyexists(inParam,'queryName') and inParam.queryName neq ''>
    <cfif isQueryUsed>
    <cfset var qryResults = queryexecute("#PreserveSingleQuotes(inParam.queryName)#",{},{datasource='xxx'})>
    </cfif>
    <cfset var tableFields = (inParam.queryName neq '') ? qryResults.getMetaData().getColumnLabels() : inParam.Columns/>
    <cfset noOfTableFields = ArrayLen(tableFields)>
    <cfset searchFields= tableFields>
    <cfset noOfSearchFields = ArrayLen(searchFields)>

    <cfset start= Int(Val(inParam.start))>
    <cfset length= Int(Val(inParam.length))>
    <cfset search= Trim(inParam['search[value]'])>
    <cfset iSortCol_0= Int(Val(inParam['order[0][column]']))>
    <cfif LCase(inParam['order[0][dir]']) EQ 'asc'>
        <cfset sSortDir_0='asc'>
    <cfelse>
        <cfset sSortDir_0='desc'>
    </cfif>
    <cfset queryWhere="">

    <cfif (search NEQ '')> 
        <cfset queryWhere ="AND (">
        <cfloop from="1"  to="#noOfSearchFields#" index="counter">
          <cfset queryWhere=queryWhere &" lower(#searchFields[counter]#) LIKE '%#Lcase(search)#%' ">
          <cfif counter LT noOfSearchFields>
            <cfset queryWhere=queryWhere&" OR">
          </cfif>
        </cfloop>
        <cfset queryWhere=queryWhere&")">
    </cfif>
    <cfif iSortCol_0 NEQ 0>
        <cfset queryOrder='ORDER BY #tableFields[iSortCol_0 + 1]# #sSortDir_0#'>
    <cfelse>
        <cfset queryOrder=''>
    </cfif>
    <cfif length NEQ 0>
        <cfset queryLimit='LIMIT #length# OFFSET #start#'>
    <cfelse>
        <cfset queryLimit=''>
    </cfif>
    <cfif isQueryUsed>
        <cfquery name="queryResult" datasource="xxx">
            #PreserveSingleQuotes(queryName)# 
            #PreserveSingleQuotes(queryWhere)# 
            #queryOrder# 
            #queryLimit#
        </cfquery>
        <cfquery name="querycount" datasource="xxx">
            #PreserveSingleQuotes(queryName)# 
            #PreserveSingleQuotes(queryWhere)# 
            #queryOrder# 
            #queryLimit#
        </cfquery>
    <cfelse>    
        <cfquery name="queryResult" datasource="xxx">
            select #ArrayToList(tableFields)# FROM #dataTable# #PreserveSingleQuotes(queryWhere)# #queryOrder# #queryLimit#
        </cfquery>
        <cfquery name="querycount" datasource="xxx">
            select count(*) OVER() AS total FROM #dataTable# #PreserveSingleQuotes(queryWhere)# #queryOrder# #queryLimit#
        </cfquery>
    </cfif>
    <cfsavecontent variable="datatablesjson">
            <cfloop from="1"  to="#queryResult.RecordCount#" index="counter">
            <cfoutput>
                [
                <cfloop from="1"  to="#noOfTableFields#" index="innerCounter">
                    <cfif tableFields[innerCounter] EQ "start_date">
                        "#JsstringFormat(dateformat(queryResult[tableFields[innerCounter]][counter],'yyyy/mm/dd'))#"
                    <cfelse>
                        "#JsstringFormat(queryResult[tableFields[innerCounter]][counter])#"
                    </cfif>
                    <cfif innerCounter LT noOfTableFields>,</cfif>
                </cfloop>
                ]
                <cfif counter LT queryResult.RecordCount>,</cfif>        
            </cfoutput>
            </cfloop>
    </cfsavecontent>
        <cfif queryResult.RecordCount is 0>
            <cfset datatablesjson=' [ '>
            <cfloop from="1" to="#noOfTableFields#" index="counter">
                <cfset datatablesjson=datatablesjson>
                <cfif counter LT noOfTableFields>
                    <cfset datatablesjson=datatablesjson&','>
                </cfif>
            </cfloop>
            <cfset datatablesjson=datatablesjson&' ] '>
        </cfif>
    <cfsavecontent variable="sGrid">    
    <cfoutput>
    {
        "draw": #Int(Val(inParam.draw))#,"recordsTotal": <cfif querycount.recordcount GT 0>#querycount.recordcount#<cfelse>0</cfif>,"recordsFiltered": <cfif querycount.recordcount GT 0>#querycount.recordcount#<cfelse>0</cfif>,"data": [#datatablesjson#]
    }
    </cfoutput>
    </cfsavecontent>
    <cfreturn sGrid>
</cffunction>

我的数据表代码

$(document).ready( function () {
    var table = $('.display').DataTable({
        "order" : [[ 0,"desc" ]],"stateSave" : true,"processing" : true,"serverSide" : true,"ajax" : "ajaxprocess.cfm"
    });
});

ajaxprocess.cfm 为:

<cfset sJSON = getDataForTable(url)>
<cfcontent reset="Yes" />
<cfoutput>#trim(sJSON)#</cfoutput>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。