PHPのクラブメンバシップのWebページにテーブルフィルタ機能があります。ユーザーがテーブルをフィルタリングし、テーブルに表示するメンバーを選択できるようにしました。例えば、彼は、そのメンバーがヒットした国または国を選択することができます。私は準備された声明を使用しています。PHPクエリでワイルドカードを使用する方法
問題は、コードを簡単にするためにワイルドカードを使用する必要があることです。 PHP MySQLクエリでワイルドカードを使用するにはどうすればよいですか?たとえば、ユーザーが特定の国を望んでいない場合は、ワイルドカードを使用しますが、すべての国のすべてのメンバーを表示する場合は、ワイルドカードを使用します。
WHERE country=
は自動的に国を選択しますが、すでに国を選択したような国のSELECTコントロールのような各コントロールには、ユーザーがそれを残しておくと "CA"や "NY"や "*" 「すべての国」の下でのコントロール。提出され、この値は、その後のようなクエリに追加されます。
$SelectedCountry = $_POST["country"];
sql .= " WHERE country=" . $SelectedCountry;
しかし、問題は動作するようには思えないWHERE country=*
を使用しています。エラーはありません。ただ機能しません。 "*"はPHP MySQLのワイルドカードですか?
好きなように使って「%」サインインをしても構いませんが、準備された文を正しく使っているようです。 – chris85
はい、私はそれを試みました、動作していないようです。私はそれを変数$ Bind_country = "'%'";に代入し、それを私のmysqli_stmt_bind_paramに含めました。それは正しく動作していない、それは結果を表示されていません。 *または%を使用しているときに特定の国を選択しても機能しません。その領域のクエリは 'WHERE country = '%'' – jay
でした。バインディングが '%'を引用しないでください。あなたのクエリは 'WHERE country = '\'%\ '''として出てくるので、 '='ではなく 'like'を使う必要があります。 '= 'でワイルドカードはありません。ワイルドカードを使用しない場合、 'Like'は' = 'と同じ働きをします。 – chris85