利用規約の変更について

PHPとMySQLでPHPからSQL文を送って、PHPにMySQLにレコード数を表示したいのですが、Resource id #3 といったようになってしまいます。
一瞬表示されたと思っていたのですが、実際のレコードの数と違ったのでやはり失敗でした。

どのような方法で表示すれば上手く表示されるでしょうか。初歩的なことで申し訳ありませんが、よろしくお願いします。

A 回答 (1件)

どんなコードでそのような症状になるのでしょうか


質問にあげている症状だけでは判断できませんので経験則で回答させていただきます。



レコード数を取得するには
対象となるレコードを全て取得して PHPのcount() 関数を使えば取得できます
しかし、レコード数があまりにも多い場合は動作が遅くなりますのでレコード数が少ないことが分かっている場合には有効な方法です



対象となるレコード数が数千や数万以上などの多い場合は
SQL文で
SELECT COUNT(*) FROM テーブル名 WHERE 抽出条件
のようにすればCOUNT数を取得できます
しかし、実際のレコードは取得できませんし、数万のレコードを全て使う場面ってあまりないかと思います。
ですから

SELECT COUNT(*) FROM テーブル名 WHERE 抽出条件
これでCOUNT数を取得する
SELECT カラム1,カラム2,カラム3・・・ FROM テーブル名 WHERE 抽出条件 LIMIT 0,30
などのように必要なレコードを取得する

というようにCOUNT用のSQLと実際にレコードを取得するSQLと 2回クエリーしなくてはなりませんが、結果として早くなります
    • good
    • 0
この回答へのお礼

なるほど。参考書をどおりやってもできなかったもので・・・。
教えてもらったとおりにやってみます!ありがとうございました☆

お礼日時:2007/12/16 16:29

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


人気Q&Aランキング