2016-10-04 7 views
0

私はまだかなりphpやjavascriptなどに新しいです、私は私が働いているアプリケーションのための私のregister.phpファイルをやっている今、私はユニークなIDを取得するために登録するすべてのユーザーが欲しい、これは私です月の終わりに使用され、リセットされるたびに「1」になる変数を作成するにはどうすればよいですか?

は、これは
$userID= date('Ymd') + some number 

たとえばこれは(今)私を与え

<?php echo date("Ymd") ?> 

20161005と私は、これは私のユーザーのための私のIDの一部になりたいと、私はそれに番号を追加したい:です番号は次の月の初めに再び1から始まるはずですので、データベースの最後に多くの番号が入りません:)

これらの2つの数字の組み合わせは、私のユーザーIDです。これは、アプリケーションで読み込むwhomsデータを阻止するのに役立ちます.. ^^

PHPで実現するのは可能ですか?

+1

これは、変数が要求に対して永続的ではないため、「変数」によっては不可能です。そのためには、何らかの形で永続ストレージを使用する必要があります。通常、そのようなもののためのデータベースを使用します。 – arkascha

+0

IDを使用して追加のデータを保存しないことをお勧めします。どのテーブルのIDも固有の自然キー(データの一部)または固有の代理キー(データの一部でない)のいずれかであることをお勧めします。自動増分ID(これはDBのプロパティとして設定できます)を使用し、この別のデータを別のフィールドに格納する方が、後で照会する方が簡単です。また、作成時間をDateTimeまたはTimestampのいずれかのタイプとして保存する方が良いでしょう。 – ArtisticPhoenix

+0

参照用http://dev.mysql.com/doc/refman/5.7/en/example-auto-increment.htmlおよびhttp://php.net/manual/en/mysqli.insert-id.php – ArtisticPhoenix

答えて

1

あなたは間違っているとは言えませんが、DBに組み込まれたAUTO_INCREMENTプロパティの使用を検討する必要があります。これにより、各インサートで自動的に増加する整数値が得られます。

あなたがテーブルの属性として設定することができ

dev.mysql.com/doc/refman/5.7/en/example-auto-increment.html

そしてやって挿入あなたにそのフィールドをそのままにして、魔法のように増分されます。あなたが作成した時間後(mysqliの中)

mysqli_insert_id($db); 

http://php.net/manual/en/mysqli.insert-id.php

とその値を取得することができ、すぐに挿入を行った後、それを使用する必要がある場合は、タイムスタンプなどの適切なデータ型を使用する必要がありますまたはdatetimeです。これはデフォルト値のNOW()を現在の時刻に設定することもできます。そして、あなたが与えられた月などにアップ調印すべてのユーザーを見つけるためにMONTH(create_date)のようなものを使用することができ、日付ベースのクエリを実行するとき..ここ

は、私が代理キー

https://en.wikipedia.org/wiki/Surrogate_key

によってどのような意味でwikiページです

基本的には、実際のデータから派生したものではない一意の識別子です。次に、これらのユーザーは、Naturalキーの良い例ですが、ほとんどの場合、ユーザーの電子メールは一意でなければならないという電子メールアドレスになります。