0

我正在尝试生成一个值,而不是像自动密钥那样在数据库端生成一个值,而是在前端或客户端生成一个值。你有什么聪明的主意吗?因为 Booking ref 不是我的主键,所以不能自动生成。我想要做的是有一个 10307 的初始值,然后在用户/s 创建/s 新记录时增加它。

但到目前为止我尝试过的是在 PHP 中:

private function inputBookingRef() {
    $value = $this->bookingRef;
    $html = "";
    $value = 10307;
    $value++;
    $html .= '<label for="ref">Booking Ref: </label>';
    $html .= HTML::inputText("ref", 20, $value) . PHP_EOL;
    return $html;
}

注意: 我的初始值为 10307,然后我使用增量运算符将其设为 10308。但每次创建另一条记录时,它只会给出 10308。我认为必须有一些巧妙的方法使其递增。

欢迎任何帮助。谢谢。

4

3 回答 3

0

如果您要查找的只是一个唯一的数字,只需使用 PHP 的time函数并使用自纪元以来的当前秒数。

$unique_num = time();
于 2012-11-14T04:33:21.283 回答
0

如果您需要使用 php 的唯一 id 而没有工作中的数据库,请使用uniquid

但我还是不明白你想在这里完成什么

于 2012-11-14T04:37:00.003 回答
0

由于您将值保存在 db 中,您只需从数据库中获取值并将该值传递给您的函数,因此每次它都会增加您以前的值。

$query = mysql_query("SELECT MAX(ref_id) FROM table ORDER BY id DESC LIMIT 1");//Getting the max ref_id
$values = mysql_fetch_assoc($query);
inputBookingRef($values['ref_id'])//calling the function

private function inputBookingRef($value) {
    //$value = $this->bookingRef;
    $html = "";
    //$value = 10307;
    $value++;
    $html .= '<label for="ref">Booking Ref: </label>';
    $html .= HTML::inputText("ref", 20, $value) . PHP_EOL;
    return $html;
}

最后将新的 $value 插入 Db

于 2012-11-14T06:31:36.653 回答