0

自動キーのようなデータベース側ではなく、フロントエンドまたはクライアント側で値を生成しようとしています..それを行うための賢いアイデアはありますか? Booking ref は主キーではないため、自動生成できません。私がやりたいことは、ユーザーが新しいレコードを作成するたびに、初期値を 10307 にしてインクリメントすることです。

しかし、私がこれまでに試したことは、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を使用して一意の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 に答える
0

探しているのが一意の数値だけの場合は、単純に PHP のtime関数を使用して、エポックからの現在の秒数を使用します。

$unique_num = time();
于 2012-11-14T04:33:21.283 に答える