我在使用字符串函数的PHP中遇到了一个小问题。我从emp_id列中获取最后一行值。这给了我1mw112,这是一个正确的结果。实际上我想要自动增加它,这是不可能的
emp_id是字符和数字的混合。我现在可以尝试做的就是拆分它
值分为两部分(1mw和112)。如果这是可能的,那么我可以将112存储在另一个变量中,并且可以在插入表格时轻松地手动递增1;我可以在表单中以只读格式显示它。我试过了str_split($var,3)
,但没有用。
这就是我的尝试:
<?php
$db=mysql_connect("localhost","m","m");// database connection
mysql_select_db("mars",$db); // database selection
//$query1="SELECT LAST(eid) AS eid FROM emp_info" ;
$query1="SELECT eid FROM emp_info ORDER BY eid DESC LIMIT 1"; // sql query to select last value from the column
$result=mysql_query($query1);
while($record=mysql_fetch_assoc($result))
{
while(each($record))
{
$eid=$record['eid'];
}
}
echo $eid;
echo "<br>";
$splitted=str_split($eid,-2);
echo $splitted;
?>
这是将“数组”作为输出回显。
有人可以帮我把另外3个数字存储到另一个变量中吗?
答案 0 :(得分:4)
你想在这里使用substr()函数而不是str_split()。使用str_split()返回一个数组,其中字符串的每个字符都填充了数组的每个元素。
<?php
$str = '1mw112';
echo substr($str, -3);
?>
答案 1 :(得分:2)
$splitted
是一个数组,这意味着你必须遍历数组才能获得它的值。
在你的情况下,你可以这样做,而不是::
$splitted = str_split($eid, 3);
$splitted[1]++;
$eid = implode("", $splitted);
echo $eid;
只要eid遵循相同的格式,这将使您能够获得结果。
<强>更新强> 要回答评论中提出的问题,可以采用另一种解决方案:
$eid = "1mv112";
$splitted = explode("mv", $eid);
$splitted[1]++;
$eid = implode("mv", $splitted);
echo $eid;
答案 2 :(得分:2)
你需要这样做的理由有一个根本性的缺陷:
我想要实际自动增加它是不可能的,因为这个emp_id混合了字符和数字。
事实并非如此。请考虑以下事项:
<?php
$str = '1mw112';
echo $str; // 1mw112
$str++;
echo $str; // 1mw113
答案 3 :(得分:1)
试试这个:
$var = substr($eid, 3);
)
答案 4 :(得分:0)
您可以通过以下方式简单地使用substr()
$lastDigits = substr($eid, -3);