dポイントプレゼントキャンペーン実施中!

最近MySQLやPHPを触り始めたものです。マニュアルを参考に、テーブルのレコード数を取得しようとしてみたのですが、返り値が1になってしまいます。なぜこのような結果になるのでしょうか?
http://jp.php.net/manual/ja/function.mysql-num-r …

:
:
$db = mysql_connect($db_host,$db_user,$db_password);
mysql_select_db($db_name,$db);

$count = mysql_query("select count(*) from $db_table", $db);
$num_rows = mysql_num_rows($count);
echo "<p>{$num_rows}</p>";

どこに問題があるのかわかりません……。初歩的なミスをしているのだと思うのですが、数時間このままの状態で困っています。

A 回答 (3件)

"X行ありました"という結果が1件帰ってくるので


結果の件数(num_rows)は1件ですね。
count(*) の数はその中を見れば入ってます。

$rs = mysql_query("select count(*) from $db_table", $db);
$count = mysql_fetch_row($rs);
print $count[0] . '件';
    • good
    • 0
この回答へのお礼

なるほど、とても分かりやすい回答ありがとうございます!

さっそく試してみたところ上手く結果を出すことができました。どうもありがとうございました!

お礼日時:2009/02/11 14:19

すいません・・・先ほどの修正です。


$num_rows = mysql_num_rows($rowcnt);
↓修正
$num_rows = mysql_num_rows(rowcnt);
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます!
教えられたとおりにやってみたのですが、なぜかできません。

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...

と出てきてしまいます。

お礼日時:2009/02/11 14:18

レコード件数を問合せるselect count(*)なので


mysql_num_rowsnoの実行結果は常に1になります。
select文にエイリアスを使用するように修正します。
$count = mysql_query("select count(*) as rowcnt from $db_table", $db);
$num_rows = mysql_num_rows($rowcnt);
    • good
    • 0

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