Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
打印 上一主题 下一主题

[PHP + MYSQL] 高手们进来下。

[复制链接]

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

11#
发表于 2010-2-12 10:19 PM |只看该作者
原帖由 宅男-兜着走 于 2010-2-12 08:25 PM 发表
太好了, 你了解我说的话。

== ......可是。。。老师也不要这样

你说难的方法是什么?


没有难,只是麻煩一些

建立一個 txt 檔記錄最后的 ID 数字
如目前是 L00005
那麼 txt 檔内的数字就是 5

新增一笔產品的時候就file_get_contents讀取内容之後+1即可,最後创建產品成功後再更新 txt 的数字


回复

使用道具 举报

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

12#
发表于 2010-2-12 10:24 PM |只看该作者
原帖由 ~Zero 于 2010-2-12 09:57 PM 发表
跟 database 的 auto increment 比起来当然会有差别.
一开始数据还少的时候是感觉不到的, 可是当数据多了的时候就会慢慢 feel 到了.

不然还有一个方法, 很荒谬, 可是应该可以解决你奇怪的要求, 又不会牺牲太多速度.
做一个 auto increment 的 ID, 然后利用 trigger 来 update 那个 varchar 的 ID.
也就是, 多放一个 number 的 column 在旁边, 浪费空间.

既然你的 ID 是 varchar, 可以先了解一下你是怎么 query 最大的?


我想你打字应该是打太快了 == 不明白你说的最后一句是什么, 你的方法可以不过我不是很熟, 不过回复你前, 看到了 Tomato 的方法好像不错。

没有难,只是麻煩一些

建立一個 txt 檔記錄最后的 ID 数字
如目前是 L00005
那麼 txt 檔内的数字就是 5

新增一笔產品的時候就file_get_contents讀取内容之後+1即可,最後创建產品成功後再更新 txt 的数字




总之就是~ ZERO AND TOMATO save the day ~ 感谢你们。


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

13#
发表于 2010-2-13 02:20 AM |只看该作者
原帖由 ~Zero 于 2010-2-12 09:57 PM 发表
跟 database 的 auto increment 比起来当然会有差别.
一开始数据还少的时候是感觉不到的, 可是当数据多了的时候就会慢慢 feel 到了.

不然还有一个方法, 很荒谬, 可是应该可以解决你奇怪的要求, 又不会牺牲太 ...

既然你的 ID 是 varchar, 可以先了解一下你是怎么 query 最大的?


SELECT xx FROM db [conditions] ORDER BY xx DESC LIMIT 1


回复

使用道具 举报

31

主题

0

好友

1228

积分

黄金长老

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

14#
发表于 2010-2-13 03:44 AM |只看该作者
哦对我忘记了, varchar 也是可以 order 的哈哈排写.


回复

使用道具 举报

2

主题

0

好友

224

积分

支柱会员

Rank: 4Rank: 4Rank: 4Rank: 4

15#
发表于 2010-2-25 02:14 AM |只看该作者
原帖由 宅男-兜着走 于 2010-2-12 17:07 发表
我现在有个table 是Product。

但是 Product 有个特定的 ID。

比如说, L0009 000 ~  L0009 001 ........  n

但是我要怎么才能够弄到他们在Mysql 内 AutoIncrement 呢?

我之前的做法是用 PHP 找最 ...



database just use auto increment  1,2,3 随便

$SQL = "SELECT * FROM table1";
$colum1=取出 auto increment data;

$colum1_length=strlen($colum1);
$length=5;  //00000
$for_loop= $length-$colum1_length;


for($i=0;$i< $for_loop;$i++){
   $count_zero.="0";
}
$result="Product ".$count_zero.$colum1;


// if colum1 一位数 = 1
//$count_zero = 0000
// result = Product + 0000+ 1
// answer Product 00001

// if colum1 2位数 = 22
//$count_zero = 000
// result = Product + 000+ 22
// answer Product 00022


还没跑过的,你试试看.....


回复

使用道具 举报

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

16#
发表于 2010-2-25 02:52 AM |只看该作者

回复 #15 davidbilly87 的帖子

你的这个做法是每个 auto_increment 的 int id 拿出来 然后 for loop , 0 下去, 再 组 “product” 下去嘛 ==

看我的。

  1. $formatProductId = "product %05s"; // product id 的格式, format。

  2. for($i = 0 ; $i < 10000; $i++){ // 假设 10000笔资料, 然后我create 10000 笔, 0~9999
  3. printf("$formatProductId" , $i."\n"); // 用printf 的function
  4. }


复制代码

http://php.net/manual/en/function.printf.php

你这方法, 如果 人家要search data by id 的话。。。。

不过谢谢。


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

17#
发表于 2010-2-25 11:09 AM |只看该作者
原帖由 davidbilly87 于 2010-2-25 02:14 AM 发表



database just use auto increment  1,2,3 随便

$SQL = "SELECT * FROM table1";
$colum1=取出 auto increment data;

$colum1_length=strlen($colum1);
$length=5;  //00000
$for_loop= $length ...



如果你真要這么做的話,可以參考PHP手册的 str_pad 函数要方便的多


回复

使用道具 举报

2

主题

0

好友

224

积分

支柱会员

Rank: 4Rank: 4Rank: 4Rank: 4

18#
发表于 2010-2-25 07:55 PM |只看该作者
原帖由 宅男-兜着走 于 2010-2-25 02:52 发表
你的这个做法是每个 auto_increment 的 int id 拿出来 然后 for loop , 0 下去, 再 组 “product” 下去嘛 ==

看我的。

$formatProductId = "product %05s"; // product id 的格式, format。

for( ...


  你能用 array的嘛, 外面看起来是 product 0001 ,但里面是 1 而已,拿来找资料.....刚学不久嘛,不要欺负嘛


回复

使用道具 举报

2

主题

0

好友

224

积分

支柱会员

Rank: 4Rank: 4Rank: 4Rank: 4

19#
发表于 2010-2-25 07:57 PM |只看该作者
原帖由 Super-Tomato 于 2010-2-25 11:09 发表



如果你真要這么做的話,可以參考PHP手册的 str_pad 函数要方便的多


string function 不是很会,毕竟少用嘛


回复

使用道具 举报

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

20#
发表于 2010-2-26 09:30 AM |只看该作者

回复 #18 davidbilly87 的帖子

哎哟~没欺负勒,我也不是什么专业的。只是做点小project罢了。
这里是论坛, 当然是讨论跟交流啊。


回复

使用道具 举报

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

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-10-25 03:23 PM , Processed in 0.099966 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部