• ベストアンサー

Warning: mysql_num_rows()

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in と、phpでエラーが出ます。調べた結果クエリに問題があるということです。 クエリは $query = "select name,jyusyo,kakaku,gazou,link from kensaku order by kakaku asc"; です。なにがおかしいのでしょうか??カカクカラムを昇順に呼び出したいのですが。。。

noname#142312
noname#142312
  • MySQL
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • tomaju
  • ベストアンサー率76% (84/110)
回答No.1

SQL文におかしいところはなさそうなので、 mysql_select_db してないとか、テーブルが存在しないとか... クエリの実行がエラーになっていないか調べてみてはどうでしょう。 $query = 'select name,jyusyo,kakaku,gazou,link from kensaku order by kakaku asc'; $res = mysql_query($query, $con); if(!$res){ echo "ERR - ".mysql_error($con); } http://www.php.net/manual/ja/function.mysql-error.php 「MySQL データベースバックエンドから返ってくるエラーは、 警告を発生しません。 代わりに mysql_error() を用いて エラー文字列を取得してください。」 なんですって。知りませんでした。

noname#142312
質問者

お礼

ありがとう御座いました。

関連するQ&A

  • mysql_num_rowsなどのWarningの原因がわからない

    以下のプログラム、何が誤っているのでしょうか。 違う箇所で使ったPHPの使いまわし(そちらは問題なく動いている) なのですが、サーバー上で実行しても Warning: mysql_num_rows(): supplied argument is not a valid MySQL result ... Warning: mysql_free_result(): (以下同上) となり、どうしても原因が究明できません。。 以下、省略してますが、本質は変わりません。SQL文($sql)を phpMyAdminで通すとなんら問題なく問い合わせ結果が得られます。 <?php  $con = mysql_connect(localhost, username, pss);  $selectdb = mysql_select_db(mydb, $con);  $sql = "SELECT Kaisya FROM MYTABLE";  $rst = mysql_query($sql, $con);  $recmax = mysql_num_rows($rst);//■←この行がWarning■  $body = "<table border='1'>";  $body .= "<tr>";  $body .= "<td style=\"text-align: center;\">会社名</td>";  for ($recnum = 0; $recnum < $recmax; $recnum++) {   $col = mysql_fetch_array($rst);   $body .= "<tr>";   $body .= "<td>" . $col['Kaisya'] . "</td>";   $body .= "</tr>";  }  $body .= "</table>";  mysql_free_result($rst);//■←この行がWarning■  $con = mysql_close($con); ?> <html><head></head><body> <?= $body ?> </body></html>

    • ベストアンサー
    • PHP
  • MySQLにつなぐことができない。

    PHPで、データベースからデータを取得しようとしたのですが、データベースもパスワードもデータも完璧なのに、以下のようなエラーが出てしまい、1週間不眠不休で調べましたが、全く解決できません。 <エラー> Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\xampp\htdocs\merhen\data\index.php on line 98 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\merhen\data\index.php on line 99 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\merhen\data\index.php on line 101 <コード> $sqli="select * from $news_table where order by id desc limit 5"; //SQLで引き抜いて変数に格納する if(($dbhi = mysql_connect($host,$database_user,$database_password)) != FALSE){ mysql_select_db($dbname) or die("Connect Error!"); $resi = mysql_query($dbhi,$sqli); $counti = mysql_num_rows($resi); エラーの意味は分かるんですが、全く解決策がわからないので、精魂尽き果ててしまいそうな状態です。 納期が明日ですので、すぐに回答がいただければと思います。 XAMPP1.6.3a及びPHP5.2を使用しています。

  • 下記2エラーメッセージの意味は?

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/fprob.php on line 22 Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/fprob.php on line 98 また、こういったエラーメッセージが分かりやすく一覧になっているPHP初心者サイトがあれば教えて下さい

    • ベストアンサー
    • PHP
  • MySQL+PHPのエラーについて

    こんにちわ。未熟者@MySQLです。 今まで自宅サーバー(Fedra3)で動かしていたDBをホスティングのサーバーに移行したらエラーがでます。 内容は Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/xxx/www/new.php on line 81 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/xxx/www/new.php on line 82 ホスティングサーバーのOSはFreeBSD、もちろんMySQLもPHPも対応しています。かわったところはというと、ホスティングではphpMyAdminを用いてテーブルを作成した点でしょうか。エラー解決以前にこのエラーの意味が分かりません。ググってもどこかのサイトのエラーページばっかりですし・・・PHPとApache、MySQL共のバージョンが同じなのですが、どこか設定がおかしいのでしょうか?一応php.iniの設定はいじれるようです。アドバイスの程よろしくお願いいたします。

  • 値の受け渡しが出来ない。

    index.htmlのチェックボックスの内容をa.phpで受け取り、この値を更にb.phpに送りたいのですが Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/sites/heteml//web/b.php on line 56 該当データ無し Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/sites/heteml//web/b.php on line 64 と、なって上手くデータが渡っていません。 a.phpには <form action="b.php" method="POST"> <input type="hidden" name="jyusyo[]" value="<?php echo ($_POST['jyusyo']); ?>" /> <input type="submit" /> </form> として、b.phpに値が渡るようにしているはずなんですが。。

    • ベストアンサー
    • PHP
  • データを昇順に並べるには

    $query = "select id,name,jyusyo,kakaku,gazou,link from kensaku where"; と書いてDBから正常にデータが取得できています。これを (1)$query = "select id,name,jyusyo,kakaku,gazou,link from kensaku order by kakaku"; (2)$query = "select id,name,jyusyo,kakaku,gazou,link from kensaku order by kakaku asc"; (3)$query = "select id,name,jyusyo,kakaku,gazou,link from kensaku [where where_definition] order by kakaku";(このやり方はPHPプロというサイトで教えてもらいました) これら三つどれを書いてもエラーになります。どうしたら良いでしょうか??

    • ベストアンサー
    • PHP
  • ネット上の無料サーバースペースのMySQLにコネクトできない

    無料サーバーで、PHP対応だとのことで サーバー管理画面でphpMyAdminでMySQLデータベースと管理者を設定し、テーブルも作ってみました。 ですが、.phpでプログラムを書いてサーバー上において実行させても以下のようなメッセージが出て、検索も操作もできていないようです。 どうすれば、きちんとコネクトして使えるようになるでしょうか。 Warning: mysql_connect(): Lost connection to MySQL server during query in /virtual/site/ホームページアドレス/htdocs/select_table.php on line 3 Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /virtual/site/ホームページアドレス/htdocs/select_table.php on line 4 Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /virtual/site/ホームページアドレス/htdocs/select_table.php on line 5 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /virtual/site/ホームページアドレス/htdocs/select_table.php on line 6

    • ベストアンサー
    • PHP
  • どちらが速いのか?mysql_num_rows

    どちらの処理が早くなりますか?またメモリの使用量はどちらが優れているのでしょうか? また、方法Bのクエリ実行は2回だと思いますが、方法Aはクエリの実行は一回と考えてもいいのでしょうか? PHPとMySQLの環境です。 また、評価のやり方も教えて頂ければ大変ありがたいです。 ■方法A $q = "SELECT key, a, b, c FROM d WHERE a < 1 AND b > 1 ORDER BY c"; $rs = mysql_query ($q); $row_num = mysql_num_rows ($rs); while ($data = mysql_fetch_array ($rs)) { echo $data[key] . $data[a] . $data[b] . $data[c]; } ■方法B $q_c = "SELECT COUNT(key) AS count FROM d WHERE a < 1 AND b > 1"; $rs = mysql_query ($q_c); $data = mysql_fetch_array ($rs); $row_num = $data[count]; $q = "SELECT key, a, b, c FROM d WHERE a < 1 AND b > 1 ORDER BY c"; $rs = mysql_query ($q); while ($data = mysql_fetch_array ($rs)) { echo $data[a] . $data[b] . $data[c]; } 是非宜しくお願い致します。

    • ベストアンサー
    • PHP
  • mysql_num_rowを繰り返したい

    ラジオボタン選択肢アンケートのデータをMySQLのテーブルに入れて、 mysql_num_row()で各選択肢の件数を抽出したいのですが。 選択肢は1~5の数値(int型)でanテーブルに入っています。 for ($i = 1; $ <= 5; $++) { $rst = mysql_query("SELECT * FROM an WHERE field=$i", $con); $kotae.$i = mysql_num_row($rst); } このように書くと 1の選択肢の数しか返してきません。しかも、件数が間違って返ってくる。  文法が間違っているからだと思うのですが。上記のようなことをやりたいのです。  forを使わないでやると、 $rst = mysql_query("SELECT * FROM an WHERE field=1",$con); $kotae1 = mysql_num_rows($rst); $rst = mysql_query("SELECT * FROM an WHERE field=2",$con); $kotae2 = mysql_num_rows($rst); $rst = mysql_query("SELECT * FROM an WHERE field=3",$con); $kotae3 = mysql_num_rows($rst); $rst = mysql_query("SELECT * FROM an WHERE field=4",$con); $kotae4 = mysql_num_rows($rst); $rst = mysql_query("SELECT * FROM an WHERE field=5",$con); $kotae5 = mysql_num_rows($rst); です。  forを使って楽にやりたい場合はどうすればよいでしょうか 宜しくお願いいたします。

    • ベストアンサー
    • 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