自动插入MySql数据库

时间:2014-09-29 10:39:40

标签: php

当一个用户在输入后输入他/她的所有详细信息时,他将收到一条消息,例如他的注册号/ ID是: A0001 第二是 A0002 像这样高达A1000 在此之后,注册没有自动更改为B0001

可能!!!!!

for ($i = 'A'; $i != 'AA'; $i++) 
{
$prefix = $i;
$id = $prefix.sprintf("%03s",$suffix);
for ($j=1;$j<=5;$j++) 
{

$res = "$id"."$j";
echo "$res"."<br>";

}
}

这是仅A005到Z005的代码,但我怎样才能选择A001并插入mysql数据库的第一列。

1 个答案:

答案 0 :(得分:0)

这很简单:

首先,您要查询数据库以获取先前的注册号/ ID。

类似的东西:

$query = mysqli_query($connect,'SELECT regCode From data ORDER BY regCode DESC LIMIT 1');

然后你检查是否有这样的结果:

$results = count(mysqli_num_rows($query));

如果$ results返回0(这是一个新的数据库),请执行以下操作: $regCode = 'A0001';

否则:

创建一个字母数组。

$alphabet = ['B','C','D','E']; #from B to Z (A is omitted because it is the default prefix)

检索以前的regCode:

list($regCode) = mysqli_fetch_row($query);

从这里分开数字

的字母表
$prefix = substr($regCode,0,1);  //get prefix/alphabet
$storage_id = (int) substr($regCode,1,4) +1; //get code and add 1

现在测试限制,在我们的例子中是1000(或你想要的任何数字):

$limit = 1000

if($storage_id>$limit){
    $storage_id= '0001'; //if limit exceeded reset storage id
    $index = array_search($prefix,$alphabet); //get alphabet/prefix index in the $alphabet array

    if($index>=0){
        $prefix = $alphabet[$index+1]; //Get next alphabet
    }
}else{
    //when limit is not exceeded do this
    if(strlen($store)!=4){ //check the length of our regCode (should be 4 letters in this case if not add some zeros)
        $storage_id = str_pad($storage_id,4,'0',STR_PAD_LEFT);
    }
}

$regCode = $prefix.$store; //combine alphabet to new storage_id
echo $regCode;

就是这样!!!

这是完整的代码。请复制一下:

<?php
mysql_connect('localhost','root','');
mysql_select_db('test');

if(isset($_REQUEST['submit']))
{
$query = mysql_query('SELECT regno from details ORDER BY regno DESC LIMIT 1');
$results = mysql_num_rows($query);
if($results==0){
    $regCode = 'A0001';
    mysql_query("INSERT INTO details (regno) VALUES('{$regCode}')");
}else{
    list($regCode) = mysql_fetch_row($query);
    $alphabet = array('B','C','D','E');
    $prefix = substr($regCode,0,1);  //get prefix/alphabet
    $storage_id = (int) substr($regCode,1,4) +1;

    $limit = 1000;

if($storage_id>$limit){
    $storage_id= '0001'; //if limit exceeded reset storage id
    $index = array_search($prefix,$alphabet); //get alphabet/prefix index in the $alphabet array

    if($index>=0){
        $prefix = $alphabet[$index+1]; //Get next alphabet
    }
}else{
    //when limit is not exceeded do this
    if(strlen($storage_id)!=4){ //check the length of our regCode (should be 4 letters in this case if not add some zeros)
        $storage_id = str_pad($storage_id,4,'0',STR_PAD_LEFT);
    }
}
$regCode = $prefix.$storage_id; //combine alphabet to new storage_id
mysql_query("INSERT INTO details (regno) VALUES('{$regCode}')");
    }
echo $regCode;
}
?>
<form name="form" id="form" method="post">
<input type="submit" name="submit">
</form>