php 用于搜索逗号分解输入的 pdo 代码

php pdo code to search comma exploded input

我有两个文本框。

收据编号,优惠券编号

用户在收据文本框中以逗号分解格式输入值。

然后点击搜索,然后根据在优惠券文本框中输入的收据获取所有价值。

我的数据在table喜欢

领取优惠券

501 - 1

501 - 2

501 - 3

502 - 4

502 - 5

502 - 6

前-

现在,如果用户在收据文本框中输入 501,502 并单击搜索,则会在优惠券文本框中显示 501,502 的所有优惠券

点击搜索后我需要在优惠券文本框中输出如下所示

优惠券文本框 = 1,2,3,4,5,6

请建议如何从收据文本框中获取逗号分解输入并进行搜索查询

下面是我的代码

<?php
$coupons = "";
$db=new PDO('mysql:host=localhost;dbname=circulation_scheme_prepaid','root','');
if($_POST && isset($_POST['submit']))
{                       
    $result=$db->prepare('SELECT coupon FROM scheme_master WHERE receipt_no=:receipt_no');
    $result->bindParam(':receipt_no',$_POST['receipt_no']);
    $result->execute(); 
    $data = $result->fetchAll();
    $coupons = array(); 
        
        foreach($data as $row)
        {               
            $coupons[] = $row['coupon'];            
        }

}
?>

优惠券文本框

<input type="text" name="coupon" readonly="true" value="<?php echo implode(',', $coupons); ?>" class="field size2" />

如果对数组进行 explode() $_POST['receipt_no'],则可以将其与 IN 运算符一起使用。请参阅 PDO info 了解如何将 IN 与 PDO 一起使用。

下面的代码使用了这个。

if($_POST && isset($_POST['submit']))
{   
    $arr = explode(',', $_POST['receipt_no']);
    $in  = str_repeat('?,', count($arr) - 1) . '?';
    $sql = "SELECT coupon FROM scheme_master WHERE receipt_no IN ($in)";                     
    $result=$db->prepare($sql);
    $result->execute($arr); 
    $data = $result->fetchAll();
    $coupons = array(); 

        foreach($data as $row)
        {               
            $coupons[] = $row['coupon'];            
        }

}