電子書籍の厳選無料作品が豊富!

日ごろからお答えくださっている皆様ありがとうございます。

現在PHPを使ってHP作成中の初心者です。
初歩的な問題なのかもしれませんがこの種の質問で参考になりそうなものはネットでは調べられなかったので質問させていただきます。
以下のような形でラジオボタンを使おうとしているのですがエラーが出てしまいます。

$sql = mysql_query('SELECT `市区町村`, COUNT(`市区町村`) AS `count` FROM `estate` GROUP BY `市区町村`');
while ($row = mysql_fetch_object($sql)) {
echo '<table border="1" cellspacing=0 cellpadding=5 width=780>';
printf('<input type="radio" name=%s value=%s/> (%d)', $row->市区町村, $row->count);
echo '</table>';
}
エラーメッセージは以下の通りで、48行目はprintfを使用している行です。
Warning: printf() [function.printf]: Too few arguments in C:\xampp\htdocs\Home_Search\src\search\search1.php on line 48

以上、よろしくお願いいたします。

A 回答 (3件)

printf('<input type="radio" name="市区町村" value=%s />%s(%d)', $row-

$row->市区町村, $row->count);
    • good
    • 0
この回答へのお礼

できました!
内容を拝見して%の数をご指摘頂いた理由がようやくわかりました。
いつもすみません…
本当にありがとうございます!

お礼日時:2012/11/25 18:43

printf のフォーマット指定部分「('<input type="radio" name=%s value=%s/> (%d)'」で3つディレクティブがある(name=%sとvalue=%sと(%d) )のに値が2つしか与えられていないからエラーになっています。

    • good
    • 0

当てはめるものが足りてないというエラーです。


printf('<input type="radio" name=%s value=%s/> (%d)', $row->市区町村, $row->count);
↑%のが三つありますよ
    • good
    • 0
この回答へのお礼

毎度お答え頂きありがとうございます。
申し訳ございません!
記述が間違っていました。

正しくは以下のものでエラーが出ています。
printf('<input type="radio" name="市区町村" value=%s />%s(%d)', $row->市区町村, $row->count);

%sなのですが、DBから取ってきた市区町村名が入っていて、その数を$dでカウントしています。
たとえば、%sを実際の文字列に置き換えるとエラーは発生しません。
しかし、変数である%sに置き換えたとたんエラーが出てしまいます。
ちなみに、ラジオボタンを作る前は正常に作動していたので、この箇所以外は正常に作動していると思います。
%sと通常の文字列ではそんなに違うものなのでしょうか?
ご協力くださいますようよろしくお願いいたします。

お礼日時:2012/11/25 15:10

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