php 寫sql,獲取下一級的code

///
/// 得到下一個ID  任何頂級分類的前綴是0001
/// </summary>
/// <param name="tableName">表名</param> ecs_category
/// <param name="fieldName">字段名</param> cat_code
/// <param name="prefix">前綴</param> 父類的cat_code
/// <param name="initValue">初始值</param> 父類的cat_coade.'0001'
/// <param name="whereSentence">WHERE子句</param> SUBSTRING(cat_code,1,LENGTH(前綴))=前綴 and LENGTH(cat_code)=LENGTH(初始值)
/// <returns>下一個ID字符串</returns>
function  GetNextID($parent_id)
{
$initValue="";//初始值
$prefix="";//前綴
$theSql = "";
if ($parent_id==0){
$prefix="";
$initValue="0001";
}else{
$sql="select cat_code from ecs_category where cat_id=$parent_id";
$prefix=$GLOBALS['db']->getOne($sql);
$initValue=$prefix."0001";
}


$theSql="SELECT CASE WHEN MAX(cat_code) IS NULL THEN '$initValue' ELSE
CONCAT('$prefix', LPAD(max(substring(cat_code,LENGTH('$prefix')+1,LENGTH('$initValue')-LENGTH('$prefix')))+1,LENGTH('$initValue')-LENGTH('$prefix'),'0'))   end
as NEXT_ID from ecs_category  where SUBSTRING(cat_code,1,LENGTH('$prefix'))='$prefix' and LENGTH(cat_code)=LENGTH('$initValue')";
$nextID=$GLOBALS['db']->getOne($theSql);
 
// echo $theSql;echo '<br/>';
// echo $nextID;echo '<br/>';

return $nextID;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章