要从最后一个ID中提取一个子字符串

时间:2018-09-08 05:03:24

标签: php mysqli

我想从一个ID中提取一个子字符串以获取最后3个 例如: PD1920005-IDPSB

我想从最后一个ID中获取最后3个数字(005)。

这是代码

    <?php
    include 'koneksi.php';

         $query=mysqli_query($db,"SELECT MAX(id) FROM psbsmp");
         $data=mysqli_fetch_array($query);
         $id= $data['id'];

                $psba=mysqli_query($db,"SELECT RIGHT(idpsb, 4) FROM psbsmp WHERE id='$id'");
                $data2=mysqli_fetch_array($psba);



            echo $data2;
?>

但是我得到的结果如下:

  

注意:未定义索引:id中   第12行的C:\ xampp \ htdocs \ Template \ Login_v2 \ Login_v2 \ tes.php

我该怎么办?请让我知道任何可能的方式。

2 个答案:

答案 0 :(得分:1)

您的问题的立即解决方案是为MAX(id)加上别名:

$query = mysqli_query($db,"SELECT MAX(id) AS max_id FROM psbsmp");
$data = mysqli_fetch_array($query);
$id = $data['max_id'];

但是,您甚至不需要在这里两个单独的查询:

SELECT RIGHT(idpsb, 4)
FROM psbsmp
WHERE id = (SELECT MAX(id) FROM psbsmp);

答案 1 :(得分:0)

您可以使用此代码,假设您具有与该字符串相同的预定义格式。您应该根据需要进行修改。

    $string='PD1920005 - DPSB';
    $string=str_replace(' ','',$string);
    $strArray=explode('-',$string);
    $numberToBeExtractedFrom=$strArray[0];
    preg_match_all('/\d+/', $numberToBeExtractedFrom, $numbers);
    $numbersString=$numbers[0][0];
    $id=substr($numbersString, -3);
    echo $id;