• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:検索結果件数を取りたいです。)

DBのテーブルから対象件数を取得する方法とエラーの対処法

go5miroの回答

  • go5miro
  • ベストアンサー率75% (3/4)
回答No.1

おそらく、MySQLにてシンタックスエラーが発生しているのではないでしょうか? SQL内で文字列を使う場合、シングルクオートか、ダブルクオートで囲む必要があります。 数値 123 で結果が取得できたのは、そういう事だと思います、 一度$sqlをechoなどで出力して確認すればわかりやすいと思います。

anan19
質問者

お礼

その確認必要ですね! echo で確認しました。 意図する文法は出力されてました。 アドバイスありがとうございます。

関連するQ&A

  • 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; としても、変な文字列を返してきました。

    • ベストアンサー
    • PHP
  • php5+Mysql5による条件検索とその表示方法が上手く動作しないのでどなたかご指摘をお願いします。

    phpにて条件検索を行っているのですが、『where』以下を$変数にすると動かなくなってしまいます。記述部分で何が間違っているのでしょうか? 以下記述↓ <? $link = db_con(); //←DB接続 $sql = "select * from tbl where id = '" . mysql_real_escape_string( $_GET['id'] ) . "' and name like '%" . mysql_real_escape_string( $_GET['name'] ) . "%' "; $result = mysql_query( $sql ) ; $num_rows = mysql_num_rows( $result ); ?> ここまで↑ を下記のように『where』以下を$変数にして代入 $変数した場合↓ <? $where .= "id = '" . mysql_real_escape_string( $_GET['id'] ) . "' and name like '%" . mysql_real_escape_string( $_GET['name'] ) . "%' "; $link = db_con(); //←DB接続 $sql = "select * from tbl where $where "; $result = mysql_query( $sql ) ; $num_rows = mysql_num_rows( $result ); ?> ここまで↑ どなたかご指摘をお願いします。

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

    まず、参考として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
  • phpで複数の検索語を検索対象にしたい

    環境:php+mysql やりたいこと: 半角や全角スペースの入った複数の検索語を検索対象にしたいです。 例:りんご みかん で検索されたキーワード 現在のコードは以下のとおりです。。 長くなるので、検索結果数だけの処理までを書いてます。 $sql の箇所で for文など使って繰り返し処理をさせればよいのかと思い google先生で検索しましたが、、どうにも該当しそうなサイトが見つからず アドバイスいただきたく質問させていただきました。 単語1つの場合だけ検索結果が正しく動きますが、 現在は、検索フォームに「りんご みかん」と入れると 検索結果ゼロになります。 これはこれで正しいのですが、、 希望は「りんご みかん」と入れると りんごとみかんを含む検索をしてほしい と考えてます。 <?php $keywords = $_GET["key"]; //検索キーワードのデータが何件あるか? $sql="select * from item where title like '%".$keywords."%' or Description like '%".$keywords."%' or category like '%".$keywords."%' "; $datas = mysql_query($sql , $db ); $num = mysql_num_rows($datas); echo "検索結果は "."<span style=\"font-size:30px;\">".$num."</span>"."件です。<br>"; } ?>

    • ベストアンサー
    • PHP
  • データベース表示結果のデザイン

    データベースの全件検索結果の表示のデザインをしたいと考えているのですがうまくいきません。 PHPのソースは以下の通りです。 <?php mysql_connect('localhost','root','******'); mysql_select_db('AAAAAAAA'); $sql= "select * from ??????"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>該当データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo "<p>"; echo $row["renban"]; echo " "; echo $row["tourokubi"]; echo " <br />"; echo $row["title"]; echo " "; echo $row["A"]; echo "-"; echo $row["B"]; echo " "; echo $row["C"]; echo " "; echo $row["D"]; echo " "; echo $row["E"]; echo " "; echo $row["F"]; echo " "; echo $row["G"]; echo "</p><hr />"; } } ?> この検索結果の1つ1つのデータをテーブルで囲んでechoで呼び出したA~Gまでの項目を<tr>や<td>で区切って表のような形にしたいのですがどのようにすればいいでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • mysql内データを降順件数指定表示

    タイトル通り、mysql内のデータを降順で件数指定して表示しようとしていますが、 どうしてもうまくいきません。 var_dumpでチェックしても問題ないように思われるのですが、うまくいかないということで見落としているミスの箇所があると思われるのですが、つまづいてしまいます。 以下にコードを載せますので、どなたかアドバイスをいただけないでしょうか。 <?php $debug = false; //DB 接続 $url = "localhost"; $user = "ユーザー名"; $pass = "パスワード"; $db = "DB名"; $link = mysql_connect($url,$user,$pass) or die("No Connected"); $sdb = mysql_select_db($db,$link) or die("No Connected"); if($debug) echo_r($_GET); mysql_set_charset('utf8'); //エラーチェック //リクエストメソッドチェック if($_SERVER["REQUEST_METHOD"] != "GET") { echo "Error: invalid method"; exit(); } //クエリ生成 $query = "SELECT * FROM shops ORDER BY id DESC limit 4"; $result = mysql_query($query) or die($query . '<br />' . mysql_error() . '<hr />'); $num_rows = mysql_num_rows($result); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>新着情報</title> </head> <body> <p>場所:<?php echo $row['area']; ?></p> <p>店名:<?php echo $row['name']; ?></p> </body> </html>

    • ベストアンサー
    • PHP
  • テーブルのレコード数を取得したいのですが、返り値が1になってしまいます。

    最近MySQLやPHPを触り始めたものです。マニュアルを参考に、テーブルのレコード数を取得しようとしてみたのですが、返り値が1になってしまいます。なぜこのような結果になるのでしょうか? http://jp.php.net/manual/ja/function.mysql-num-rows.php : : $db = mysql_connect($db_host,$db_user,$db_password); mysql_select_db($db_name,$db); $count = mysql_query("select count(*) from $db_table", $db); $num_rows = mysql_num_rows($count); echo "<p>{$num_rows}</p>"; どこに問題があるのかわかりません……。初歩的なミスをしているのだと思うのですが、数時間このままの状態で困っています。

    • ベストアンサー
    • 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
  • sqlの検索結果件数は出るのですがwarningが出てしまいます

    緊急に直さなければならないのですが、私の知識では万策尽き、とても困っています。 環境はRedHat7.3でmysqlコマンドをPHPから実行しています。 複数のレコードをselect文で検索した後に、それぞれのフィールドの’A'の個数を求めるのが目的です。しかし、ひとつのレコードに、ware_name1、ware_name2、ware_name3 ・・・・・・・・ ware_name100 というフィールドが100も有り、それぞれが’A'を持つ可能性があるので、フィールド名最終部の数字部分を変数$iとし、1++で変えることにより、ループで処理をしています。 計算結果自体は、正解なのですが、どうしても下記のようなWarningメッセージが出てしまいます。 よろしくお願いします。 Warning: Supplied argument is not a valid MySQL result resource in ware_amount.php on line 7 1: $ware_amount = 0; 2: 3: for ($i=0; $i<100; $i++) { 4: $num_row = 0; 5: $sql = "select * from sales where ware_name$i = 'A'" ; 6: $result = mysql_query($sql, $con); 7: $num_row = mysql_num_rows($result); 8: 9: $ware_amount = $ware_amount + $num_row; 10: }

    • ベストアンサー
    • PHP
  • 検索結果にリンクを生成

    お世話になります。 MySQL+PHPでのプログラム勉強中です。 テーブル名:果物 code name price 1  りんご  200 2  みかん  100  3  ぶどう  400 このようなデータベースで、名前の検索をして 番号と名前を表示させるのですが、名前がリンクになっており 名前のリンクをクリックすると、別画面で名前と価格を表示 するようなものを作成したいとおもってます。 $sql = "SELECT * FROM 果物 WHERE name LIKE '$tmp_name%'";  $result = mysql_query($sql,$db); $num = mysql_num_rows($result); //$tmp_title = null; $i = 0; for ($i;$i < $num;$i++) { $row1 = mysql_fetch_row($result); $com_cord = $row1[0]; $com_name = $row1[1]; ここからの表示方法がわかりません。 よろしくお願い致します。

    • ベストアンサー
    • MySQL