2011-11-22 99 views
20

我有一个系统,允许用户输入优惠券(例如像戴尔和亚马逊)优惠券代码统计

我想知道有多少优惠券已被使用,因此500次后的优惠券不再有效。

我现在想的方式是将优惠券插入表格,然后select count(*),如果它达到50,那么我不插入,并且我返回一条消息说它已过期。

我认为这个解决方案的工作原理,但我想验证,也许检查是否有更好的方法来做到这一点。

+1

未经合作伙伴网站验证,您整合计算的任何系统都将毫无用处。 –

+0

劳伦斯是对的。除非在您的网站上使用优惠券,否则无法正确计数,即使没有网站在成功交易时使用优惠券呼叫您的网站。但是,如果你有一个引用api设置,我会将它们作为关系存储在关系表中,这样我就可以消除重复调用,复杂化或任何可能弄乱数据的情况。此外,您可以存储传递给您的任何信息,以便更多地了解使用优惠券的用户。标准营销。 –

+0

是的,像我说的:我有一个系统...和用户使用我的网站上的优惠券 –

回答

21

我假设你有一些存储在代码,描述等表格中的优惠券,将num_used列添加到它并每次使用优惠券时增加它。这样,如果需要,您仍然可以将优惠券插入订单中,但您无需执行计数。您只需检查加载优惠券信息时已使用了多少次。我假设你使用优惠券代码检查有效性,所以再次投入多次。

+0

你能详细说明一下代码吗?我喜欢这个想法 –

+0

当然。对于我过去实施的折扣,我设置了优惠券表:id,代码,说明,类型(x%off,$ y off等),is_limited,limit,num_used,applies_to)。根据需要配置您的优惠券。当用户输入代码时,您执行验证。它可以包括:1)代码有效 - 是/否2)是否适用于所要求的产品 - 是/否,3)是否有限制优惠券 - 是,已达到限制 - 是/否。你可以使它像你想要的那样复杂。一旦验证通过,您只需增加优惠券表中的计数器以跟踪所用的#号。 –

+0

谢谢生病请尝试 –

0

您可以将优惠券代码“附加”到一个订单。

例(为你的mysql命令表): 为了ABC使用优惠券 “Coupon1” 为了BCD使用优惠券 “Coupon1”

,然后是你可以使用函数像这样的:

function getCouponUsage($a_couponCode){ 
    $res = mysql_query("SELECT couponCode FROM orders WHERE coupon = '$a_couponCode'") or die(mysql_error()); 
    return mysql_num_rows($res); 
} 

该函数将返回一个整数。只是比较你的限制。

你也可以设置一个计数器。比方说,优惠券可以使用500次,当有人使用优惠券时,您将取消优惠券,总数将为499(优惠券可以从现在起使用499)。