![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 小佑 ![]()
![]() ![]() |
目前遇到 表單要新增編號,想法是,新的表單上面的編號,會先去搜資料庫裡有無相同的編號 有的話,就+1並存入到資料庫,並在新表單上出現新的編號 小弟有試寫,但會變成無限循環 請大大教導一下~謝謝 <? //流水號指定變數 $date = $_POST['user']; //例(ARW20190426-01) //連線資料庫 $servername = "localhost"; $username = "root"; $password = "12345678"; $dbname = "rework_signing"; // 建立連線 $conn = @new mysqli($servername, $username, $password, $dbname); // 檢測連線 if ($conn->connect_error) { die("連線失敗: " . $conn->connect_error); } .............(此段該如何添加判別 並丟出結果,給下一筆表單使用) $sql_detail = "INSERT INTO sample_db ( merge_sn ) VALUES ('$date')"; if ($conn->query($sql_detail) == TRUE ) { echo "匯入成功"; } else { echo "匯入失敗" . $sql_detail . " ". $conn->error; } //關閉資料庫連線 $conn->close(); ?>
搜尋相關Tags的文章:
[ 編號新增 ] ,
本篇文章發表於2019-04-26 17:42 |
1樓
不錯的參考
小魚 ![]() |
通常編號會有固定的格式,
用字串篩選的方式只取最後的數字的部分, 轉成數字之後再做+1的動作.
本篇文章回覆於2019-04-26 23:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓 |
https://www.1keydata.com/tw/sql/sql-substring.html
本篇文章回覆於2019-04-26 23:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
最有價值解答
浩瀚星空 ![]() ![]() |
1.請善用程式標簽一下
2.請注意不要將安全性帳密的程式碼給po出。就算只是本機測試或無實體帳密。養成習慣改掉。 最後回答你的問題。大多數來說如果有特規條件的流水編號。 也就是不是單純數字的流水號的情況。一般會有兩種做法 其一:新增資料前檢查筆數。 優點是程式碼比較單純,缺點是比較容易增加效能,且也有機會發生重覆號碼(很低的機率) 其二:序號判斷法: 每一次產生序號就檢查有無重覆。此比較適合無規則性的序號。對你不太適合。 其三:編號記錄式: 另開一張表,記錄前碼與後碼的對應性。前碼就是你的特別代碼。後碼就是你的流水號。 新增時直接取其號碼,並做+1的動作。 一般我會比較建議使用這樣的方式。雖然他的缺點是程式碼比較麻煩一些。 且又得額外佔用一些記錄。 但他的效能比較好,且重覆性也不會發生。
本篇文章回覆於2019-04-28 04:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓 |
原來還有這樣的方法,
不過其實我一直在想個問題, 萬一兩個人同時下訂單, 會不會出現兩筆同樣的訂單編號, 如果用主鍵唯一鍵讓他回傳錯誤感覺使用者體驗不好, 如果用第三種方式馬上加一筆是不是就可以避免這種情況了? 不過就有可能出現跳號的情況(抓了編號沒寫進去), 不過跳號總是比錯誤好吧, 是這樣子嗎?
本篇文章回覆於2019-04-28 09:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
作者回應
小佑 ![]() ![]() |
版主:
謝謝提醒,以後PO文詢問,我會特別注意~謝謝 版主您提供的方法,我再試試~感謝 小魚: 謝謝提供方法,也是很好的方式~謝謝您
本篇文章回覆於2019-04-28 20:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |