php-pdo代码搜索逗号分解输入


php pdo code to search comma exploded input

我有两个文本框。

收据编号,优惠券编号

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

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

我的数据在类似的表格中

收据优惠券

501-1

501-2

501-3

502-4

502-5

502-6

对于ex-

现在,如果用户在receipttextbox中输入501502并单击搜索,则会在coupontextbox中显示501502的所有优惠券

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

coupontextbox=1,2,3,4,5,6

plz建议如何从收据文本框中获得逗号分解输入并进行搜索

下面是我的代码

<?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" />

如果将()$_POST['receipt_no']扩展到数组,则可以将其与IN运算符一起使用。请参阅PDO信息了解如何将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'];            
        }
}