わかりました、これは私を困惑させました。
私は現在、ショッピングカートがクーポンテーブルをチェックして、買い物客が入力したクーポンコードが製品に対して有効であるかどうかを確認するシステムを持っています。
これは問題なく動作しますが、システムを拡張して、単一のコードを多数の製品の1つに使用できるようにすることを検討しています。
現状の動作コードは次のとおりです。
$coupon = mysql_real_escape_string(htmlentities(strtoupper($_POST['coupon'])));
$coup_qry = mysql_query("select tblcoupon.*, sell_product.product_code,sell_product.id from tblcoupon,sell_product WHERE tblcoupon.code='$coupon' AND sell_product.product_code = tblcoupon.products");
if($numrows = mysql_num_rows($coup_qry) > 0) // check if typed coupon exists in tblcoupon table
{
while($coup_w = mysql_fetch_array($coup_qry))
{
$start_date = $coup_w['start_date'];
$end_date = $coup_w['end_date'];
$start = strtotime($start_date);
$todays_date = date("Y-m-d");
$today = strtotime($todays_date);
$expiration_date = strtotime($end_date);
if($today >= $start && $today <= $expiration_date) // if todays date is > start date
and < end date then execute the below script
{
$coupon_productcode = $coup_w['products']; //product code in the tblcoupon table
$sell_product_productcode = $coup_w['product_code'];
//check if any of the products in the shopping cart match any of the products
foreach ($_SESSION['cart'] as $name => $value)
{
$id = substr($name, 5, (strlen($name)-5));
if($id==$coup_w['id'])
{
$_SESSION['coupon'] = "C$coupon-$id";
if(isset($_SESSION['offer'])) {
unset($_SESSION['offer']);
}
if(isset($_SESSION['error'])) {
unset($_SESSION['error']);
}
$errCoupon = "Coupon code accepted-green";
}
else {
$errCoupon = "Coupon Code is Invalid for this product.";
}
}
}
else if ($today < $start){
$errCoupon = "Coupon Code is not yet active!-red";
}
else if ($today > $expiration_date){
$errCoupon = "Coupon Code has expired!-red";
}
}
}
私がする必要があるのは、tbl_coupon
呼び出された場所に新しい列を追加しproducts2
(これは別の製品コードになります)、SQLクエリで次の行を検索するようにすることです。sell_product.product_code = tblcoupon.products OR sell_product.product_code = tblcoupon.products2
次に、$_SESSION['cart']
$id
製品が有効なオプション(products
またはproducts2
)であるかどうかを確認する必要がありますが、両方ではありません。クーポンは、2つのオプションのうちの1つでのみ機能します。
どんな助けでも素晴らしいでしょう。
さらに詳しい情報が必要な場合は、お問い合わせください。