2011-12-22 2 views
0

Google은 내부 재고 시스템을 개발 중입니다. 사용자가 주문을하고 주문 정보를 입력하면 brand, model, SKU 등 사용자 입력을 자유 양식 입력으로하고 제출하면 해당 값 모두를 이미 입력 된 항목과 비교합니다. 재고 데이터베이스. 먼저 SKU을 찾으면 직접 비교합니다. 그렇지 않은 경우에는 modelbrand을 비교하여 사용자에게 동일한 항목인지 확인하도록 요청합니다.다중 값 일치?

아무에게도 이것을 달성하기위한 최상의 방법에 대한 아이디어가 있습니까? 나는 이것이 구글에게 호출 될 것이라고 생각하지 않는다. 코드 예제/리소스를 제공해 주시면 감사하겠습니다.

답변

2

는 양식 필드가 "orderInfo"라는 가정, 값 (12345 유효한 SKU이다) "12345 한국 전기 가젯"

<cfquery name="checkSKU" datasource="inventoryDSN"> 
SELECT 
* 
FROM 
Inventory 
WHERE 
cast(SKU as varchar) IN (<cfqueryparam value="#ListChangeDelims(form.orderInfo, ' ', ',')#" list="true" cfsqltype="cf_sql_varchar">) 
</cfquery> 

<cfif checkSKU.recordCount> 
    <!--- We have a match! ---> 
<cfelse> 

<cfquery name="checkOthers" datasource="inventoryDSN"> 
SELECT 
inventory.* 
FROM 
Inventory 
WHERE 
1=0 
<cfloop list="#form.orderInfo#" delimiters=" " index="searchTerm"> 
OR brand LIKE <cfqueryparam value="%#searchTerm#%" cfsqltype="cf_sql_varchar"> 
OR model LIKE <cfqueryparam value="%#searchTerm#%" cfsqltype="cf_sql_varchar"> 
</cfloop> 
</cfquery> 

<cfif checkOthers.recordCount IS 1> 
    <!--- have a solid match ---> 
<cfelseif checkOthers.recordCount GT 1> 
    <!--- have some ambiguity, present user with choice among returned results ---> 
<cfelse> 
    <!--- No match found, return error message ---> 
</cfif> 

+0

와우있다. 놀랍습니다. 솔직히! – Brian