- ベストアンサー
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; としても、変な文字列を返してきました。
- みんなの回答 (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>"; みたいな感じで?
その他の回答 (1)
- koke29
- ベストアンサー率58% (114/196)
COUNT(*)でやるなら、mysql_fetch_assocとか使わないとダメなんじゃないかな と思いました ので、たぶんコードの省略にはならないかなぁ 今回のコードでも echo mysql_num_rows($rst) . "件のレコードがありました。<br>"; とすれば、一行は減りますよ 何かいい方法があるなら私も知りたいので、回答待ちしてくれるとうれしいです
お礼
koke29さん、御礼が遅くなってすみません、 アドバイスありがとうございました。 確かに一行減りますので、こういう効率化も図りたいと思います。
お礼
yambejpさん、御礼が遅くなってすみませんでした。 NO1さんが示唆されたとおり、mysql_fetch_assocで 解決できたのですね、今後とも活用させていただきます。