要は『先頭の0はいらない。1,2,3...でいい』ってことでしょ?
当たり前じゃん。
公式によると、
フォーマットを『%02d』にしたら、
整数としてのデータを『二桁にして』文字列にする
です。
プログラムは書いた通りにしか動きません。
まずは公式リファレンスを読みましょう。
(慣れていないときついが)
[追記1]
それとも"01"から開始したいってことでしょうか。
(どっちとも読める…)
もしそうなら工夫が必要です。
プログラミングは『こう書けばいい』というものではありません。
まず、変数 $count の値を考えてください。
そうすると、0を二桁にした文字列なので、
"00"となります。
では"01"から始めるにはどうすればいいでしょうか。
質問者さん、もし現実世界でホワイトボードかなんかに、
"00"と書かれていて、これを数字として読むとしたらどう読みますか?
私なら、『0』と読みますね。
では0を1にするにはどうすればいいでしょうか。
やり方はいくつもありますが、普通は単純に+1すると思います。
それと一緒です。
なので、最初の$countを1にするか、0のときだけ+1するとか。
[追記2]
それとも、『前回のデータまで含まれる』ってことでしょうか。
1回目: 00
2回目: 0001
3回目: 000102
4回目: 00010203
…
もしそうなら、当たり前です。
少なくとも現時点(この追記時)のコードでは当たり前です。
コードを読みましょう。
コードを読むコツは『一行レベルで、その行がなにをしているかを考えながら読む』です。
// 現在の値を二桁として文字列にする
$count = sprintf("%02d",$count);
// 出力する
echo $count;
// (整数として) +1 する
$count++;
これをfor文なりでループしているとするとどうでしょうか。
ただし、このechoは、デフォルトでは『改行しない』です。
なので、繋がっているのです。