生成自动序列号并将结果保存在数据库中

时间:2014-06-29 22:22:47

标签: php

有人可以帮助我。

我在线获得了一个关于如何生成自动序列号并编辑它以满足我的需求的代码,其中包含了我所需的输出。但是在将结果保存到数据库中时,它只保存最后一个值“ 99 ”而不是从00001开始的所有值。

我在中间如何重写代码以保存数据库中的所有值。请有人查看下面的代码和建议

<?php require_once('Connections/@@@@@.php'); ?>

<?php
for($i = 1; $i < 100; $i++){
$result = str_pad($i, 5, '0', STR_PAD_LEFT) . '<br />';
echo $result;
} 
mysql_select_db($database_@@@@@, $@@@@@);
mysql_query("INSERT INTO codes (sn) VALUES ('$result')");
?>

谢谢

2 个答案:

答案 0 :(得分:0)

最好不要在1执行时进行100次查询

<?php require_once('Connections/@@@@@.php'); ?>

<?php
$result ='';
for($i = 1; $i < 100; $i++){
$result .= "'".str_pad($i, 5, '0', STR_PAD_LEFT)."'," ;//crate concatenated string
// echo $result."<br>";
} 
$result = substr($result,0, -1); //removes last comma

mysql_select_db($database_@@@@@, $@@@@@);
mysql_query("INSERT INTO codes (sn) VALUES ($result)");
?>

这将在单个查询中插入所有100个,<br>也已从db字符串中删除

答案 1 :(得分:0)

对于自动序列号,这就是我一直在使用的

SELECT j.*, DATE_FORMAT( ddate,  '%d %M %Y' ) AS ddate2, DATE_FORMAT( dateapplied,  '%d %M %Y' ) AS dateapplied2, @curRow := @curRow + 1 AS sn
FROM jobsappltn j JOIN  (SELECT @curRow := 0) r
ORDER BY j.jaid DESC

使用此方法,您无需使用mysql自动增量ID的值...只需将 sn 列的值作为第一列即可。

您的桌子看起来像这样

sn       Ddate2        Dateapplied2
1        09-09-2018    09-08-2018
2        10-09-2018    29-08-2018