私はIDが0001
、0002
などの単純なデータベースを持っています。 最後のIDを取得し、最後に1を追加する必要があります。IDの増分0001 +1が表示されます2
私はそれを$_SESSION['part_number'] = $part_number + 1;
に保存しています。 IDが0001
の場合、なぜ2つの結果が得られるのかわかりません。 IDが0010
であれば同じですが、正面に00を付けて常に最後のID + 1にしたいと思います。
私はIDが0001
、0002
などの単純なデータベースを持っています。 最後のIDを取得し、最後に1を追加する必要があります。IDの増分0001 +1が表示されます2
私はそれを$_SESSION['part_number'] = $part_number + 1;
に保存しています。 IDが0001
の場合、なぜ2つの結果が得られるのかわかりません。 IDが0010
であれば同じですが、正面に00を付けて常に最後のID + 1にしたいと思います。
使用STR_PAD_LEFT
echo str_pad($_SESSION['part_number'], 4, "0", STR_PAD_LEFT); //0002
OR
echo str_pad($part_number+1, 4, "0", STR_PAD_LEFT); //0002
PHPは動的型付け言語であるを使用してみてください。奇妙な変換を避けるために、特にデータベースの場合に先行ゼロを使用しないでください。あなたは人生をもっと難しくします。 (AUTO_INCREMENT
フィールドはあなたのためにすべての仕事を行い、本当に必要な場合は、MySQL側に先行ゼロを追加することができます)。 0
で始まる数字は、PHPを使用した場合は8進数(ベース8)と解釈されるという問題もあります。
ちょうどAUTO_INCREMENT
にIDフィールドを変更し、先行ゼロを使用してデータを取得するために、MySQLの機能LPAD()
を使用し、SQL側ですべてこれを行うには
。
SELECT LPAD(id, 4, '0') AS id FROM your_table_name WHERE ...
本当に最初にこれらの000が必要ですか?なぜあなたはそれらを必要としますか?それほどいいことはありません.... 私は問題があなたが整数としてあなたのデータを保存したと思います。整数は文字列として保存する必要があるかもしれませんが、AIは動作しません... – Twinfriends
先頭の0はどこにも格納されず、必要なときにのみ表示されます( 'php.net/str_pad'とfriendsを使用してください) – Kris
ちょうど1、2などを使う...無駄なので、整数は最初に000を持つことはできません。 –