设为首页收藏本站

八达网

 找回密码
 注册
查看: 691|回复: 26
打印 上一主题 下一主题

万能的8达啊 PHP+MYSQL达人进

[复制链接]

23

主题

1

好友

4万

积分

光明执政官

跳转到指定楼层
1
发表于 2007-11-2 14:58 |只看该作者 |倒序浏览
我在整一网站 新手 对PHP代码几乎一窍不通 更别说JS了


问题如下:
有个表A的主键由几个字母+数字组成
字母部分由另一表B的某栏内的内容控制
A的字母部分可相同 数字想要实现在前面字母相同的情况下实现自动编号
我现在要做一个插入数据的页面
该用什么办法呢 怎么实现这个自动编号呢?

1442

主题

8

好友

7万

积分

仲裁者

luaTeRran

2012年度八达十大水友

2
发表于 2007-11-2 15:03 |只看该作者
select count(*) from A where   prikey like ....

根据返回值  再格式化一个字符串做主键传进去


回复

使用道具 举报

0

主题

0

好友

4万

积分

大和

6000小时俱乐部

3
发表于 2007-11-2 15:06 |只看该作者
是字母相同的进行自动编号 还是整个自动编号?
●____●用意淫的态度对待生活,用手淫的方式享受生活
(● ω  ●)PaNDaZerg的Blog一个Zuser的自白
回复

使用道具 举报

23

主题

1

好友

4万

积分

光明执政官

4
发表于 2007-11-2 15:07 |只看该作者
字母相同的进行自动编号
回复

使用道具 举报

0

主题

0

好友

4万

积分

大和

6000小时俱乐部

5
发表于 2007-11-2 15:08 |只看该作者
原帖由 KoMoS 于 2007-11-2 15:03 发表
select count(*) from A where   prikey like ....

根据返回值  再格式化一个字符串做主键传进去

正解
●____●用意淫的态度对待生活,用手淫的方式享受生活
(● ω  ●)PaNDaZerg的Blog一个Zuser的自白
回复

使用道具 举报

629

主题

0

好友

3万

积分

大和

Jim Raynor

6
发表于 2007-11-2 15:09 |只看该作者
国内用MySQL少吧?都是SQLServer
3年来证明

回复

使用道具 举报

0

主题

0

好友

5万

积分

光明执政官

水友赛菜鸟组全国10强

7
发表于 2007-11-2 15:10 |只看该作者
火箭一落后
黑子满街走
没有卢瑟头
就黑阿德叟
翠喜是兜兜
明帝变土狗
风吹两边倒
脸皮不怕糗
回复

使用道具 举报

23

主题

1

好友

4万

积分

光明执政官

8
发表于 2007-11-2 15:16 |只看该作者
原帖由 KoMoS 于 2007-11-2 15:03 发表
select count(*) from A where   prikey like ....

根据返回值  再格式化一个字符串做主键传进去


这句取出的是什么值啊?我很菜 别骂我




比如A表某值是“ABC 004”其他还有“BBC” “BCC”什么的 字母是另一表B内某栏的数据
那我要插入一数据主键为“ABC 005”
我要先从B读出 “ABC” 然后后面的“005”要怎么自动编号
直接由SQL语句能实现吗?还是要在页面里用PHP实现?
能用文字说说思路吗先。。。。。
回复

使用道具 举报

23

主题

1

好友

4万

积分

光明执政官

9
发表于 2007-11-2 15:20 |只看该作者
还有市面上基本买不到网站PHP+MYSQL的书
我只买了本DW 里面全讲页面制作的  所有动态动作全部由DW功能实现 不行的还都上插件
功能是强大  可以要想自由实现点什么功能时 就云里雾里了
不看语言还是不行啊。。。。。


能推荐什么好的PHP入门方法吗?
回复

使用道具 举报

0

主题

0

好友

4万

积分

大和

6000小时俱乐部

10
发表于 2007-11-2 15:26 |只看该作者
返回值是有ABC字段的个数
之后就去组合吧。
●____●用意淫的态度对待生活,用手淫的方式享受生活
(● ω  ●)PaNDaZerg的Blog一个Zuser的自白
回复

使用道具 举报

1442

主题

8

好友

7万

积分

仲裁者

luaTeRran

2012年度八达十大水友

11
发表于 2007-11-2 15:36 |只看该作者
你看看sql 的语法        Like ‘ABC%’

LS也说了      返回值是和ABC类似的数据的个数   然后++      就是自增了

我不懂php     不过去书店看到过 墨绿色的一本 PHP+MYSQL5.0 什么的


回复

使用道具 举报

222

主题

8

好友

8万

积分

管理员

理论上的巨人,行动上的胖子

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

战队
FS-
联赛ID
FS-sy.P
种族
Protoss

2013年夜饭

12
发表于 2007-11-2 15:38 |只看该作者
高手啊

回复

使用道具 举报

23

主题

1

好友

4万

积分

光明执政官

13
发表于 2007-11-2 15:42 |只看该作者
谢谢各位
哎 我想做美工的
阴错阳差做的。。。。。
回复

使用道具 举报

1442

主题

8

好友

7万

积分

仲裁者

luaTeRran

2012年度八达十大水友

14
发表于 2007-11-2 15:43 |只看该作者
想到个问题  你字符串格式不固定的话会有问题吧      你试下      如果有两个字段如下: ABC004   

   ABCC004   

   ABCC那个不是你要的结果  也会被选中


回复

使用道具 举报

23

主题

1

好友

4万

积分

光明执政官

15
发表于 2007-11-2 15:46 |只看该作者
表B输入字母时控制在3个字符 应该不会有问题
谢谢 不过“ABC004” +1 会不会变成 “ABC5”?
回复

使用道具 举报

210

主题

0

好友

4万

积分

光明执政官

16
发表于 2007-11-2 15:47 |只看该作者
楼主这种表格在数据库设计里面属于典型的失败设计

想当然的以为把两个栏目(字母+数字)直接并起来可以加快速度是门外汉的想法
I went to the woods because I wished to live deliberately, to front only the essential facts of life, and see if I could not learn what it had to teach, and not, when I came to die, discover that I had not lived.
回复

使用道具 举报

0

主题

0

好友

4万

积分

大和

6000小时俱乐部

17
发表于 2007-11-2 15:54 |只看该作者
原帖由 山上下来的 于 2007-11-2 15:46 发表
表B输入字母时控制在3个字符 应该不会有问题
谢谢 不过“ABC004” +1 会不会变成 “ABC5”?

ABC001
ABC002
ABC003
ABC004

select以后是 4
不是ABC004
判断一下这个数有几位
前面补几个0再把字母加上
●____●用意淫的态度对待生活,用手淫的方式享受生活
(● ω  ●)PaNDaZerg的Blog一个Zuser的自白
回复

使用道具 举报

23

主题

1

好友

4万

积分

光明执政官

18
发表于 2007-11-2 15:54 |只看该作者
原帖由 anomaly 于 2007-11-2 15:47 发表
楼主这种表格在数据库设计里面属于典型的失败设计

想当然的以为把两个栏目(字母+数字)直接并起来可以加快速度是门外汉的想法

这数据库不是我设计的 要我是不会这么划的
我是接一个烂摊子在做
但是要重新自己来搞 第一怕麻烦 第二我也菜
回复

使用道具 举报

1442

主题

8

好友

7万

积分

仲裁者

luaTeRran

2012年度八达十大水友

19
发表于 2007-11-2 16:01 |只看该作者
php 也支持 sprinft(buff, "ABC%03d",  返回值+1)


回复

使用道具 举报

210

主题

0

好友

4万

积分

光明执政官

20
发表于 2007-11-2 16:07 |只看该作者
那个 count(*) , 如果你的编号不一定是连续的, 比如中间有删除过, 就不对了
保险点用 select primary_key from table where  primary_key like "abc%" order by primary_key desc ( 如果数字位数相同 )
I went to the woods because I wished to live deliberately, to front only the essential facts of life, and see if I could not learn what it had to teach, and not, when I came to die, discover that I had not lived.
回复

使用道具 举报

23

主题

1

好友

4万

积分

光明执政官

21
发表于 2007-11-2 16:22 |只看该作者
头大啊。。。。。
回复

使用道具 举报

0

主题

0

好友

3万

积分

版主

Rank: 7Rank: 7Rank: 7

22
发表于 2007-11-2 16:26 |只看该作者
O'reilly 出版
<PHP&MySQL Web 数据库应用>   69 元

[ 本帖最后由 [Y.H]zmy 于 2007-11-2 16:30 编辑 ]
回复

使用道具 举报

0

主题

0

好友

6万

积分

仲裁者

安全第一,不显示签名

2007年度八达十大水友 2008年度八达十大杰出青年 2009年度八达十大水友

23
发表于 2007-11-2 16:36 |只看该作者
我补充下,如果是要排序,还应该这样:

比如需要对字段“name”中使用字母ABC的排序,就是

select count(*) from A where   prikey like "ABC" order by name (desc)…………desc可选填。
上士闻道,勤而行之;
中士闻道,若存若亡;
下士闻道,大笑之。
不笑不足以为道。
回复

使用道具 举报

0

主题

0

好友

9725

积分

大象

24
发表于 2007-11-2 16:37 |只看该作者
$str = 'abc';//可以修改成你需要排列的前缀。
$strlen = strlen( $str );
$sql = "select SUBSTRING(`columns`, ( $strlen + 1 ) ) + 1 from `table` where SUBSTRING(`columns`, 1, $strlen ) = '$str'";

应该这样可以了!
不过数据量大的话,速度就。。。  最好有一个辅助表来记录最大值。
设计表的人确实非常strong!
回复

使用道具 举报

0

主题

0

好友

4万

积分

大和

25
发表于 2007-11-2 16:44 |只看该作者
LZ 下载一个PHP手册看下吧.

另外这个表的结构设计很失败,   字母和数据不要混在一个字段里面.
BS 太监

零食笔记
回复

使用道具 举报

0

主题

0

好友

4万

积分

大和

26
发表于 2007-11-2 16:49 |只看该作者
自动递增 可以设ID 字段的 auto_increment

或每次插入前读取前一个ID 然后+1

一般处理都使用第一种方法.
BS 太监

零食笔记
回复

使用道具 举报

762

主题

5

好友

2万

积分

大和

27
发表于 2007-11-2 16:51 |只看该作者
很好很强大
齐B小短裙,齐B小短裤,齐奶小马甲我的最爱!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|八达网    

GMT+8, 2026-2-6 06:11

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部