JBTALKS.CC

标题: 要怎样设置呢?A00001, A00002... A00010 [打印本页]

作者: nic58191    时间: 2010-4-2 06:46 PM
标题: 要怎样设置呢?A00001, A00002... A00010
Hi,

我想问问,我要怎样设置呢?
我用 php n mysql
我要怎样auto generate 这样的agent id呢?
A00001, A00002 ... A00010

谢谢回答
作者: nic58191    时间: 2010-4-2 07:16 PM
我从另个论坛得到的example,对不对呢?
  1. function generate_agent_id(){
  2.     $sql = "select agent_id from agent order by agent_id desc limit 1";
  3.         $result = mysql_query($sql);
  4.             if (mysql_num_rows($result) > 0){            
  5.                 $agent_id = mysql_result($result, 0,"agent_id" );
  6.                 $agent_id = substr($agent_id, 1);
  7.                 $agent_id = (int) $agent_id;
  8.                 $agent_id++;               
  9.                 $n = 5 - strlen($agent_id);
  10.                 $agent_id = "A" . str_repeat("0", $n) . $agent_id;                        
  11.             } else {
  12.                 $agent_id = "A00001";
  13.             }
  14.     return $agent_id;                        
  15. }
复制代码

作者: 宅男-兜着走    时间: 2010-4-2 07:23 PM
回复 1# nic58191


    这个问题我问过了, 那就是把 number 放在个 .txt 里, 然后记入 number 到哪里了。 .xml 文件也可以。
作者: nic58191    时间: 2010-4-2 07:58 PM
回复 3# 宅男-兜着走

那你可以给我example吗?
谢谢
作者: ~Zero    时间: 2010-4-2 10:15 PM
回复  nic58191


    这个问题我问过了, 那就是把 number 放在个 .txt 里, 然后记入 number 到哪里了 ...
宅男-兜着走 发表于 2010-4-2 07:23 PM

你的方法只不过是考虑到 database query 的速度, 当 database 很大的时候会比较快一点.
如果纯粹只是解决问题, 或是比较小的 database 的话, 楼主的 example 其实也是可行的.
作者: myEsc    时间: 2010-4-3 01:17 PM
mysql自带auto index
作者: nic58191    时间: 2010-4-3 11:34 PM
所以要怎样做呢?
作者: 宅男-兜着走    时间: 2010-4-3 11:55 PM
回复 7# nic58191

  1. function generate_agent_id(){
  2.     $sql = "select agent_id from agent order by agent_id desc limit 1";
  3.         $result = mysql_query($sql);
  4.             if (mysql_num_rows($result) > 0){            
  5.                 $agent_id = mysql_result($result, 0,"agent_id" );
  6.                 $agent_id = substr($agent_id, 1);
  7.                 $agent_id = (int) $agent_id;
  8.                 $agent_id++;               
  9.                 $n = 5 - strlen($agent_id);
  10.                 $agent_id = "A" . str_repeat("0", $n) . $agent_id;                        
  11.             } else {
  12.                 $agent_id = "A00001";
  13.             }
  14.     return $agent_id;                        
  15. }
复制代码
这方法很好啊, 为什么不使用??
作者: nic58191    时间: 2010-4-4 01:24 AM
回复 8# 宅男-兜着走

请问要怎样应用这个呢?
要怎样call 这个呢 generate_agent_id()
作者: 宅男-兜着走    时间: 2010-4-4 02:01 AM
回复 9# nic58191


    怎么Call== 。。。。。

  1. <?php
  2. mysql_conn
  3. ..... blah blah,
  4. 很久没用 PHP 了, Connect 的Function 自己去找。
  5. function generate_id(){
  6. //你之前的那个Code
  7. }
  8. //现在才是 Call
  9. $currentId = generate_id();

  10. mysql_close();
  11. ?>
  12. 就如此。
复制代码

作者: nic58191    时间: 2010-4-5 10:40 PM
ok,
弄到了
作者: cslyzon    时间: 2010-4-22 12:50 PM
其实 alter AUTO_INCREMENT=1就可以了
作者: nic58191    时间: 2010-4-22 09:04 PM
回复 12# cslyzon

如果以你的方法,可以做到A00001吗?
最多可以1,2,3.....
作者: nic58191    时间: 2010-4-22 09:06 PM
回复 10# 宅男-兜着走

现在我要做sub agent id
A0000101, A0000102, A0000103
类似这样的,要怎样呢?
作者: 磨刀狂徒    时间: 2010-4-22 09:51 PM
本帖最后由 磨刀狂徒 于 2010-4-22 09:53 PM 编辑

不谈php的思路,只谈简单的sql数据库设计思路,
在mysql下 先设定你的store last_id = A0000000
然后再设定 AUTO_INCREMENT=1 就可以了
下一个输入的id就=A0000001
其实问题有很多种解法,你可以选择适合你自己的
作者: 宅男-兜着走    时间: 2010-4-22 10:24 PM
回复 14# nic58191

参考楼上的, 不过第一页的 Function 不能用吗??
作者: nic58191    时间: 2010-4-23 12:05 AM
回复 16# 宅男-兜着走

我有main agent和main agent's agent
第一楼的适合用于main agent
Example, Main Agent A00001
Main agent's agent A0000101, A0000102




欢迎光临 JBTALKS.CC (https://www.jbtalks.cc/) Powered by Discuz! X2.5