こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

テーブルのレコード数を取得したいのですが、返り値が1になってしまいます。

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

:
:
$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>";

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

投稿日時 - 2009-02-11 03:22:36

QNo.4707247

困ってます

質問者が選んだベストアンサー

"X行ありました"という結果が1件帰ってくるので
結果の件数(num_rows)は1件ですね。
count(*) の数はその中を見れば入ってます。

$rs = mysql_query("select count(*) from $db_table", $db);
$count = mysql_fetch_row($rs);
print $count[0] . '件';

投稿日時 - 2009-02-11 09:14:30

お礼

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

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

投稿日時 - 2009-02-11 14:19:33

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

すいません・・・先ほどの修正です。
$num_rows = mysql_num_rows($rowcnt);
↓修正
$num_rows = mysql_num_rows(rowcnt);

投稿日時 - 2009-02-11 05:50:54

お礼

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

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

と出てきてしまいます。

投稿日時 - 2009-02-11 14:18:31

ANo.1

レコード件数を問合せるselect count(*)なので
mysql_num_rowsnoの実行結果は常に1になります。
select文にエイリアスを使用するように修正します。
$count = mysql_query("select count(*) as rowcnt from $db_table", $db);
$num_rows = mysql_num_rows($rowcnt);

投稿日時 - 2009-02-11 05:45:27

あなたにオススメの質問