項目毎の登録件数の表示について

このQ&Aのポイント
  • mysqlを使用してカテゴリ毎の登録件数を表示させる方法について質問です。
  • 具体的なコード例やアドバイスがありましたら教えてください。
  • また、不動産検索サイトにおいてカテゴリ毎に登録件数を表示させるためのアドバイスも求めます。
回答を見る
  • ベストアンサー

項目毎の登録件数の表示について

まず、参考としてURLを貼ります。 http://select.misawa-mrd.com/B010/13/ このURLの不動産検索サイトにあるように、カテゴリ毎(参考URLでは23区別に)にmysqlに登録されている件数を表示させる仕組みについての質問です。 mysql_num_rowsを使い、23区毎にSQL文も書き分ける必要があると思うのですが、例えばこの画像のように23区それぞれに登録件数を表示するには、具体的にどういったコードを書くのが最もシンプルに仕上がるのでしょうか? http://okwave.jp/qa/q2196405.html 例えば、このURLの回答にもあるようなものを何十通りも書いていくものなのでしょうか? 漠然とした質問ですが、ご回答いただければ幸いです。 もしよろしければ、最初に貼ったURLの不動産検索サイトにあるようなカテゴリ毎に登録件数を表示させたいとなった場合、こうするといい、こうすべき、といったアドバイスもありましたら、併せて教えていただければ幸いです。 よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

何回もSQLを投げるよりはcase文などを使ってSQL自体は1回で済ませる方がいいでしょうね。 http://dev.mysql.com/doc/refman/5.1/ja/control-flow-functions.html select sum(case chiku when 'a' then 1 else 0 end) as chiku_a, sum(case chiku when 'b' then 1 else 0 end) as chiku_b, sum(case chiku when 'c' then 1 else 0 end) as chiku_c from ・・・ なお、提示されたサイトなどではデータの登録・編集・削除などの処理のあとで1回だけ件数を拾い直して、それを別のテーブルに保存している可能性が高いです。データに変更がないのに毎回調べる必要はありませんから。

domo-kun
質問者

お礼

case文を使うことで、1文でうまく表示させることができました。 ありがとうございます。

その他の回答 (1)

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

group byしてカウントとるだけで十分な気がします。

domo-kun
質問者

補足

group by だと項目の数に応じてSQL文を同じ数だけ作らなければならないですか?

関連するQ&A

  • 検索結果件数を取りたいです。

    環境は、php + mysqlで作ってます。 DBのテーブルに格納されている文字列をセレクト文で取り出して 対象件数が何個あるか知りたいです。 DBのテーブルに格納されている文字列はURLの文字列が入ってます。 例えば http://www.yahoo.com/ 確認のため、予め $obj = "http://www.yahoo.com/"; として、DBに入っているデータを書いておいて以下を実行しました。 $sql="select * from geturl where url=".$obj; $datas = mysql_query($sql , $db ); $num = mysql_num_rows($datas); echo $num; 結果: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/~~ といったエラーが出てしまいました。。。 今度は、予め数字を入れておいて実行してみました。 入れた文字は「123」です。 $obj = "123"; $sql="select * from geturl where url=".$obj; $datas = mysql_query($sql , $db ); $num = mysql_num_rows($datas); echo $num; 結果:正しく対象件数がブラウザに表示されてました。 数字だと正しく処理されて、英文字だとエラーになる原因がわかりません。。 アドバイスいただければ幸いです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 市区町村の表示と件数

    東京都 足立区(~件) 北区(~件) 墨田区(~件)………  神奈川県 横浜市(~件) 川崎市(~件)…………  上記のような形で、データベースからデータを取得して、エリアの横に件数を表示させるPHPを作成したのですが表示速度が遅すぎて困っています。ソースは以下です。1番目のテーブルで、指定した都道府県の市区町村データを取得してから、2番目のテーブルでそれに合致する物件データの件数を取得するというものです。表示速度を改善する方法はありますでしょうか? //ソース $sql_area = "SELECT * FROM エリアのテーブル WHERE area = '東京都'"; $result_area = mysql_query($sql_area); for($i = 0; $i < mysql_num_rows($result_area); $i++){ $arr_area = mysql_fetch_array($result_area); $sql_cnt = "SELECT * FROM 全物件のデータ WHERE 市区町村 = {$arr_area[市区町村]}; $result_cnt  = mysql_query($sql_cnt); $category_cnt = mysql_num_rows($result_cnt); echo $arr_area[区名]({$category_cnt}件); }

    • ベストアンサー
    • PHP
  • 不自然なインデックス登録件数サイトについて

    こんにちは。 ある30~50ページ数のサイトで、インデックスの登録件数(検索エンジン)が何万とあるサイトがありました。 ボリュームに合わないインデックス登録件数なのですが、インデックスの登録件数ってページの中から登録されるものではないのですか? 上位表示の為の技ですか?

  • phpで表示件数をcsvの項目ごとに出す

    初心者です、2点分からないことを投稿させていただきます。 下記サイトを参考に、 phpでcsvを読み込み表示するサイトを作成しています。 http://affiliate.aki-f.com/prog/cat/cat9.html 「1ページを10件表示に制限する」方法で、 全件数の表示をすることはできるのですが 各カテゴリページ毎のページ送りを付ける方法がわかりません。 下記サンプルページでいうと 「1.ホームページ」をクリックした後のページを 10件ずつ表示にしたいという感じです。 http://affiliate.aki-f.com/prog/sample/sample30/ もう1点は、 「1.ホームページ」の横に、そのカテゴリの件数を 表示させる方法が分かりません。 例) ┏ 1. ホームページ作成(5) ┣ 2. Webデザイン(2) ┣ 3. CGI(0) ┗ 4. JavaScript(8) としたいのですが、教えて頂けませんでしょうか? お願い致します。

    • ベストアンサー
    • PHP
  • カテゴリ毎の記事件数表示

    PHPとMySQLを使用しています。 ブログなどで、カテゴリ毎にそのカテゴリに登録されている記事件数がカテゴリ横に表示されているケースがあります。 (「カテゴリ名(15)」←のようなものです) それと同じことをしたいのですが、 ―――――――――― $sql = "SELECT COUNT(cateid) AS cnt FROM prod GROUP BY cateid order by cnt"; $res = mysql_query($sql, $conn) or die("データ抽出エラー"); $numrow = mysql_fetch_array($res, MYSQL_ASSOC);   while($numrow){   echo $numrow["cnt"];   } カテゴリid毎にレコード数をカウントして、それを配列で受けて表示する ―――――――――― という流れのつもりなのですが、上記スクリプトの「while~」部分がない場合は、1つのカテゴリidの登録数のみが表示され、他のカテゴリidは表示されず、「while~」を加えるとPCがフリーズしました。 熟考できていないのですが、何かヒントや上記スクリプトの間違いなどを ご指摘いただけると大変有り難く存じます。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • レコード件数の表示

    夜分失礼します。 上記内容について教えてください。 今JAVAを用いてレコード件数(200件)を表示させようとしています。 しかし、レコードセットの表示方法しか知らず、またレコード件数をPHPで表示させる方法くらいしか検索できませんでした。どこがいけないか指摘してください。 以下にコア部分を書きます。 // ドライバクラスをロード Class.forName("org.gjt.mm.mysql.Driver"); // データベースへ接続 String url = "jdbc:mysql://localhost:3306/db"; con = DriverManager.getConnection(url,"root","**********") stmt2 = con.createStatement(); strQuery2 = " select count(*) AS RecordNums from ********** "; ResultSet rs2 = stmt2.executeQuery( strQuery2 ); SumNo = rs2.getFetchSize(); どうしてもSumNo=0となってしまいます。

    • ベストアンサー
    • Java
  • メニューの階層について

    phpとmysqlでショッピングサイトをつくっています。 まずは、カテゴリーを登録し商品を登録する際に登録してある カテゴリーをmysqlから読み込みカテゴリーの選択を行うのですが カテゴリーの階層が1階層しかない状態です。 ・カテゴリー1(登録件数) ・カテゴリー2(登録件数) これを ・カテゴリー1(登録件数)   |_ サブカテゴリー1(登録件数)   |_ サブカテゴリー2(登録件数) ・カテゴリー2(登録件数)   |_ サブカテゴリー1(登録件数)   |_ サブカテゴリー2(登録件数) のような2階層以上にしたいのですがテーブル構造やphpの 処理などの具体的なイメージがわかない状態です。 アドバイスや参考になるサイトなど情報をお持ちの方が おりましたらご教授お願い致します。

    • 締切済み
    • PHP
  • perlを使ってレコード件数を取り出してみると、すごい数が・・・。

    perlのDBIモジュールを使って、mysqlのレコード件数を表示させてみると、すごい数が表示されました。ソースは以下の通りです。 use DBI; $dbh=DBI->connect("DBI:mysql:データベース名:サーバ名", "ユーザ名", "パスワード") || die $DBI::errstr; if(!$dbh){ print "エラーです。入力を確認してください。"; exit; }else{ #接続成功 # SELECT文発行 $sth=$dbh->prepare("SELECT sei, mei, mail FROM table"); #実行 $sth->execute; $num_rows = $sth->rows; print "該当 $num_rows, 件\n"; # 開放 $sth->finish; # AUTO COMMITがOFFの場合はCOMMITが必要 $dbh->commit; # 切断 $dbh->disconnect; } 実行すると該当 4294967294, 件 とブラウザに表示されました。僕はレンタルサーバを使っているわけですが、僕のデータベースにはレコードは3件しかないのです。これはレンタルサーバのデータベースすべての件数が表示されているのでしょうか? なんだかSQLを実行するのが怖いので、考えられる原因を教えてください。よろしくお願いします。 プログラムを初めてまだ、数ヶ月しか経ってない初心者なので、みなさんの知恵を貸していただけると幸いです。

    • ベストアンサー
    • MySQL
  • 表示件数が替えられなくなった

    OKWaveでマイページは開けても質問履歴などは読み込み中のまま反応しなくなってしまいました。 質問文は入力出来ても、カテゴリ選択や「確認する」ボタンは反応しません。 他に不具合というか変なところは、Yahoo!オークションのウォッチリストの表示件数は替えられても、検索結果の表示件数は20のまま替えられなく、画像も一枚目以外クリックしても反応しなく、アマゾンもカテゴリ選んだ上でも価格の安い順番などに表示を替えられなくなってしまいました。 セキュリティソフトが怪しいかもと、無効にしてみても駄目でした。 考えられる原因はなにがありますか? パソコンはWindows7の64bitです。 携帯からです。よろしくお願いします。

  • 検索表示件数の設定がなくなっているのは何故か?

    BingやDuckDuckGoの検索サイトですが、 以前は、一度に表示できる検索件数を増やす設定があったのですが、 今はなくなってしまい、一度に10件ごとしか表示できません。 https://www.bing.com/ https://duckduckgo.com/ これらのサイトです。 10件ごとじゃ何度も「次へ」を押さないといけなくなり、ものすごく手間ですよね。 googleだってちゃんと検索表示件数を変更できる設定があります。 何故これらの検索サイトは、検索件数を増やす設定を無くしたのでしょうか?

専門家に質問してみよう