プログラマーではないのですが、php+mysqlを使って特定のテーブルから特定のキーワードを抜き出して件数を表示したいと思います。
美容室(10)理容室(7)エステ(5)ネイル(3)
のように表示させたく、下記のように書きました。
$wo1="美容室";
$wo2="理容室 ";
$wo3="エステ";
$wo4="ネイル";
$dbh = new PDO($dsn, $username, $password);
$dbh->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
$sql = "SELECT * FROM テーブル WHERE 種別 like BINARY'%$wo1%'";
$stmt = $dbh->query($sql);
$stmt->execute();
$count=$stmt->rowCount();
$sql2 = "SELECT * FROM テーブル WHERE 種別 like BINARY'%$wo2%'";
$stmt2 = $dbh->query($sql2);
$stmt2->execute();
$count2=$stmt2->rowCount();
$sql3 = "SELECT * FROM テーブル WHERE 種別 like BINARY'%$wo3%'";
$stmt3 = $dbh->query($sql3);
$stmt3->execute();
$count3=$stmt3->rowCount();
$sql4 = "SELECT * FROM テーブル WHERE 種別 like BINARY'%$wo4%'";
$stmt4 = $dbh->query($sql4);
$stmt4->execute();
$count4=$stmt4->rowCount();
<?php print($wo1); ?>(<?php print($count); ?>)
<?php print($wo2); ?>(<?php print($count2); ?>)
<?php print($wo3); ?>(<?php print($count3); ?>)
<?php print($wo4); ?>(<?php print($count4); ?>)
実際に動いているのですが、
他に都道府県別に
北海道(3)東京都(5)とやりたいので47回SQLを発行するのが大変なので
もっと軽くなる方法はありますでしょうか?
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
データがちゃんと正規化されているのであれば,ANo.1さんの書かれている通り,GROUP BYすればよいでしょう。
ただ,例示されているような,種別はLIKEで取ってこないといけないような作りであるならば,都道府県でも同じように一個ずつ取ってくる必要があるかもしれません。
RDBをRDBらしく使うならば,データの正規化は必須です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHP ページング データベース 1 2022/06/16 10:30
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
insert1つの処理でもトランザ...
-
ResultSetインターフェイスでの...
-
Pro*Cの構文エラー
-
php postgres Insert と updat...
-
Q&Aサイトを作成していてURLの...
-
mysqlの命令文をPDOに書き換...
-
MySQLのINSERT時にたまに重複に...
-
<VB.NET>INSERT文でDBにデータ...
-
PHP&MySQLでの文字列+数列の一...
-
JAVA SQLServerException 列名 ...
-
sqlから多次元配列に要素を格納...
-
MySQLでデータベースにデータin...
-
csvをDBへ読み込んだら、NULLが...
-
実行時エラー3131 FROM 句の構...
-
PHPで[]の使い方について
-
mysql_fetch_arrayで配列に格納...
-
SELECT結果から動的にコンボボ...
-
php 投票システム
-
VBAをつかってクエリの情報を抽...
-
PHPから、MySQL内に日本語名の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JAVA SQLServerException 列名 ...
-
Pro*Cの構文エラー
-
Q&Aサイトを作成していてURLの...
-
insert1つの処理でもトランザ...
-
<VB.NET>INSERT文でDBにデータ...
-
MySQLのINSERT時にたまに重複に...
-
VBA ACCESS SQL...
-
phpのupdate,sql文にて連番カラ...
-
VB.NET エラーになる箇...
-
phpで複数の検索語を検索対象に...
-
PHP初心者です。syntax error, ...
-
ResultSetインターフェイスでの...
-
データベースに存在するデータ...
-
PHPの5Cに関する文字化け
-
PHP&MySQLでの文字列+数列の一...
-
PHPのSQL文のデバッグ方法とコ...
-
mysqliを使ってデータベースを...
-
ToDoリストの「完了済」を非表...
-
php postgres Insert と updat...
-
PHP+SQLite でSELECT文のWHERE...
おすすめ情報