1、首先說編號 : 編號的問題需要沒有重復(fù)對吧?如果你使用了數(shù)據(jù)庫的話,就要先從數(shù)據(jù)庫中讀出最大的編號,才能開始寫下一個項目編號,你可以單獨建立一個項目編號字段,也可以不建,取出來之后用用字符串函數(shù)截取,總之,這是一個不容易做到的問題。
堅守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都成都三維植被網(wǎng)小微創(chuàng)業(yè)公司專業(yè)提供成都定制網(wǎng)站營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
至于下個月的第一單,是否能夠再重新開始,也是必須在這里完成的。
你可以在讀取數(shù)據(jù)庫內(nèi)容的時候,加入日期查詢條件,如果查詢不到當(dāng)月的記錄,那么這個項目編號就再從01開始。
說得比較抽象,這只是原理,因為你連程序都沒有,現(xiàn)在就算有人回答你,也只能是這樣理論性地告訴你,不可能告訴你代碼。
2、日期中的月份: 這個特別簡單只要這樣一個函數(shù)就搞定:date('m');
3、前面的S就不解釋了。
最后,就是連接: 設(shè):$result是你最后想得到的值,$munber是項目編號,$da是月份
那么:$result = 'S'.$da.$number; //這就是你想要得到的結(jié)果。
這個time()函數(shù)是將時間保存成時間戳格式,則要查當(dāng)月數(shù)據(jù),只要查當(dāng)月第一天到當(dāng)月最后一天的之間的數(shù)據(jù)即可。
假設(shè)這個用來判斷的字段是date
sql語句
SELECT ………… WHERE………… `date` = 本月第一天的time值 AND `date` 下個月第一天的time值
所以這里就只要獲取當(dāng)月第一天以及下個月第一天的時間戳
具體如下:
?php
$cur = date('Y-m',time());//當(dāng)天年月
$cur_y = date('Y',time());//當(dāng)天年份
$cur_m = date('m',time());//當(dāng)天月份
$cur_f = $cur . '-1';//本月首日
$first = strtotime($cur_f);//時間戳最小值,本月第一天時間戳
//下月首日
if($cur_m=12){
$cur_n = ($cur_y+1) . '-1-1';
}else{
$cur_n = $cur_y . '-' . ($cur_m+1) . '-1';
}
$last = strtotime($cur_n);//時間戳最大值,下個月第一天時間戳
?
再把$first 和 $last 放入sql語句里面就可以查詢到數(shù)據(jù)了
PHP查詢到的數(shù)據(jù)存放到數(shù)組里面,一般使用$arr[]=$row的方式實現(xiàn),$row是mysql_fetch_array獲得的一行數(shù)據(jù),本身是一個數(shù)組,執(zhí)行上面的語句之后,這一行會添加存放在額為數(shù)組$arr的最后。
典型的例子代碼是這樣的:mysql_connect('127.0.0.1',
'root',
'123456');$sql='select
*
from
test.tab';if
($res=mysql_query($sql)){
while($row=mysql_fetch_array($res))
$result[]=$row;
mysql_free_resule($res);}else
echo
"執(zhí)行SQL語句:$sql\n錯誤:".mysql_error();echo
'查詢結(jié)果在下面的額為數(shù)組里面:';print_r($result);echo
'';