我想从一个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
我该怎么办?请让我知道任何可能的方式。
答案 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;