• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP&MySQLのエラー(syntax)への対処)

PHP&MySQLのエラー(syntax)への対処

このQ&Aのポイント
  • PHPとMySQLを使った検索プログラムを作ってみているのですが、実際に動かしてみると、検索結果表示画面にエラーが表示されます。
  • エラーメッセージは「You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1」と表示されます。
  • 解決策を見つけるために、PHPに関するサイトやQ&Aを参考にしていますが、まだ問題の解決方法が見つかっていません。アドバイスやご指摘をお願いできますか?

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

if (count($where <> 0)) { $query .= ' where ' . implode('and', $where); } は if (count($where) <> 0) { $query .= ' where ' . implode('and', $where); } が正しいですね。 これが原因ではないでしょうか。 エラーメッセージではSQL文の構文エラーだと言ってますので、クエリーを実行する前に$queryの中身をダンプしてみて、自分で想定したSQL文になっているのか確認しましょう。

domo-kun
質問者

補足

見落としていました。 ご指摘有難うございます。 もう一点アドバイスいただきたい点が浮上しました。 お二方のご回答にて修正を加えることで検索結果が表示されるようになったのですが、どうしても全件表示されてしまいます。 検索条件を生成する部分のコードで何かお気づきの点がありましたら、ご教示戴けないでしょうか。 検索条件としては、 typeが、ラジオボタンで選択したアイテムと完全一致するように。 nameが、文字列検索とnameに記入した文字列と完全一致するように。 addressが、ラジオボタンで選択したアイテムと住所が部分一致するように。 descriptionが、テキスト内容と検索文字列が部分一致するように。 になるように書いているつもりです。

その他の回答 (2)

回答No.3

$result = mysql_query($query) or die($query . '<br />' . mysql_error() . '<hr />'); ↓ echo $query; $result = mysql_query($query) or die($query . '<br />' . mysql_error() . '<hr />'); こうやって自分で確認してください。他人にやってもらうことじゃないです。

回答No.1

$query .= ' where ' . implode('and', $where); ↓ $query .= ' where ' . implode(' and ', $where);

domo-kun
質問者

補足

見落としていました。 ご指摘有難うございます。

関連するQ&A