• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQLで0で検索できない)

MySQLで0で検索できない

このQ&Aのポイント
  • MySQLのテーブルにおいて、numberが0の行を検索することができません。
  • PHPのソースコードを使用して、numberが0の行を取得しようとしていますが、うまくいきません。
  • なぜnumberが0の行を取得できないのか、またどうすればnumberが0の行を取得する方法を教えてください。

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

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

>if($rows && !empty($_POST['numberSearch'])){ $_POST['numberSearch']が"0"のときemptyで評価すると正となります !emptyですから偽ですね emptyは理論的な空ですから 空文字列""、整数の0、浮動小数点数の0、文字列の"0"、NULL、FALSE、 空の配列array()、変数が宣言されているが値が設定されていない変数 などすべて空とみなします。 http://php.net/manual/ja/function.empty.php ちなみにSQLで参照するのにWHERE句に検索文字を入れない意味がわからない。 また古いmysql_系の関数を使い続けるはデメリットしかないので リプレースを検討してください

h_mp
質問者

お礼

ありがとうございます。 !emptyをissetに変えたらうまくいきました。 where句に参照文字を入れるというのは、sql文にwhere句を入れて実行するということですよね。そちらも今後使います。 mysql_~と続く関数は古いものなのですね。 今後それを使わない方法でやりたいと思います。

その他の回答 (1)

  • tkf-
  • ベストアンサー率58% (821/1398)
回答No.1

> if ($row["number"] == $_POST['numberSearch']) { ここで、「文字」として比較されてしまっているのではないでしょうか。 おそらく、$row側は数値、$_POST側は文字であり、それらを無理矢理比較しているから。 $row側の数字を文字に変換してあげれば、良いのではないでしょうか。

h_mp
質問者

お礼

$row側を文字に変換してやってみます。 ありがとうございます。

関連するQ&A