• ベストアンサー

mysql_num_rowsを使わず、SQL文のCOUNT関数で件数を得たい

以下のサンプルを実行すればうまくいくのですが、 $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); $selectdb = mysql_select_db($DBNAME, $con); $sql = "select * from mytable where number = 10"; $rst = mysql_query($sql, $con); $countnum = mysql_num_rows($rst); echo $countnum . "件のレコードがありました。<br>"; ◆実行結果: 10件のレコードがありました。 「10件のレコードがありました。」という一行の実行結果を得たい目的なら、 三行目を「$sql = "select count(*) from mytable where number = 10";」 みたいにCOUNT関数を使っても結果が得られそうに思います。 というかむしろ、その方がコードが短くて済みそうな気がするのですけど。 その場合、4~6行目のPHPコードはどのように記述したらいいでしょうか。 echo $rst; としても、変な文字列を返してきました。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

$sql = "select count(*) as count from mytable where number = 10"; $rst = mysql_query($sql, $con); $row = mysql_fetch_assoc($rst); echo $row["count"] . "件のレコードがありました。<br>"; みたいな感じで?

litton101
質問者

お礼

yambejpさん、御礼が遅くなってすみませんでした。 NO1さんが示唆されたとおり、mysql_fetch_assocで 解決できたのですね、今後とも活用させていただきます。

その他の回答 (1)

  • koke29
  • ベストアンサー率58% (114/196)
回答No.1

COUNT(*)でやるなら、mysql_fetch_assocとか使わないとダメなんじゃないかな と思いました ので、たぶんコードの省略にはならないかなぁ 今回のコードでも echo mysql_num_rows($rst) . "件のレコードがありました。<br>"; とすれば、一行は減りますよ 何かいい方法があるなら私も知りたいので、回答待ちしてくれるとうれしいです

litton101
質問者

お礼

koke29さん、御礼が遅くなってすみません、 アドバイスありがとうございました。 確かに一行減りますので、こういう効率化も図りたいと思います。

関連するQ&A

専門家に質問してみよう