プロが教えるわが家の防犯対策術!

MySQLとPHPを連携させて住所録を作っているのですが、主キー(int型)の表示方法を
"1"→"0001"
と表示させたいと思っています。
本を見ながらしかできない初心者なもんで、どうすればそうなってくれるのか全く分からない状況です。

MySQLのバージョンは4.020C、PHPのバージョンは4.3.7.7で制作しています。
宜しくご教授下さい。

A 回答 (4件)

なぜINTにサイズがあるかを理解すれば比較的簡単に回答にたどりつけます。


INTのサイズは表示サイズです、ZEROFILL指定すると、その桁数で、
0を埋めてもらえます。

CREATE TABLE hoge (fuga INT(4) ZEROFILL);
INSERT INTO hoge VALUES(1);
SELECT * FROM hoge;
    • good
    • 1
この回答へのお礼

教えていただいた方法で解決できました。
INTにサイズがあったのは、そんな理由だったんですね。ZEROFILL指定なんて便利なものがあるとは知りませんでした。
ありがとうございました。

お礼日時:2008/12/05 16:40

print sprintf("%03d",$変数);


で出来ます。
    • good
    • 0
この回答へのお礼

他の言語でも見たような形式なんですね。あっちこっちに手を出す前に、一つの言語をしっかり勉強したほうがよさそうです。
回答ありがとうございました。

お礼日時:2008/12/05 16:38

ちょっと心配なので・・・



dbに保存する値と、表示される値とは違う! ということは理解できています?
一般的には保存されている値をそのまま表示しますが、dbの容量、応答速度、抽象化レベルを高めるなどの理由で、「数字のゼロをxxx」と表示するなどの対応表を作って、「保存される値と表示される値」が違っていることは結構 一般的に行われています。
    • good
    • 0
この回答へのお礼

そうだったんですか・・・。全く分かってませんでした。
教えてくださってありがとうございます。
表示の仕方を決めたいときは、そちらもきっちり考えないとダメなんですね。
ありがとうございました。

お礼日時:2008/12/05 16:29

主キーが id、テーブルが t だったら、



select right(concat('00', id),3) from t;

こんな形で書けます。
    • good
    • 0
この回答へのお礼

すばやい回答ありがとうございます。
私の持っている本には書かれていない方法でした。もう1冊くらい詳しそうなものを選んでみようかと思います。

お礼日時:2008/12/05 16:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す