私はこのコードを持っています: 'などをクエリ文字列から取得し、ユーザーをuri(szukaj/query)を検索するようにリダイレクトします。たとえばfilm_nameがRaj:wiaraで、ユーザーがraj:wiaraを検索すると、クエリはraj wiaraのようになり、ユーザーは結果を取得しません。私は単一の言葉に質問を爆発させることを考えていましたが、その後foreach wordはdbからSELECTをしますが、同じ映画の複数の結果が得られます。 javascriptコードを変更したくないので、次のような特殊文字なしではその映画名を作ることはできないと思います。 または、film_keywordsのdbに別の列を作成し、そこにムービーのすべての単語を区切って追加してからこの列を検索しますか?PHP検索MySQLの
0
A
答えて
2
MySQLの全文検索の機能は、ここではあなたの友達です:
http://dev.mysql.com/doc/refman/5.7/en/fulltext-search.html
は試合のシリーズを返し、あなたがベストマッチのために返すように、スコアが得られます。
警告:$this->db->where("film_name LIKE '%$query%'");
はSQLインジェクションが可能です。誰でもJavaScriptを巡回することができますので、入力サーバー側を常にクリーンアップする必要があります。これは、文字をストリッピングするだけでなく、DB関数を使って行うのが最善です。これを行うには、使用しているライブラリを確認してください。
1
this answerのソリューションを使用すると、実際にあなたの文字列を爆発させることができます。
function searchMovie($query)
{
$queries = preg_split('/[^a-z0-9.\']+/i', $query);
foreach ($queries as $keyword){
$this->db->where("film_name LIKE '%$keyword%'");
}
$movies = $this->db->get ("films", 40);
if($this->db->count > 0)
{
return $movies;
}
return false;
}
これは、結果はフィルタリングされますので、あなたのデシベルのために複数のAND
条件を作成します。
+0
助けてくれてありがとう!良いかもしれませんが、私は全文回答を使用します、それは検索スコアなどを実装しています...それは私に合っています:)とにかくありがとう! – buli
関連する問題
- 1. mysql phpで検索
- 2. PHP MYSQL:検索ワードクエリ
- 3. PHP/MySQL - 検索クエリ
- 4. php mysql検索クエリ
- 5. mysqlのPHP検索エンジン
- 6. PHP MYSQLチェックボックスの検索
- 7. PHP MySQLのLIKE検索
- 8. PHPフォーム検索MySQLデータベース
- 9. MySQL/PHP検索機能?
- 10. PHP/MySQL:簡易検索エンジン
- 11. 高度な検索PHP、MySQL
- 12. 配列検索PHP mysql PDO
- 13. mySQLプログラムエラーでPHPを検索
- 14. PHP MySQLの検索の提案
- 15. PHPのmysqlの検索全文
- 16. Mysql - PHPの異なる値の検索
- 17. は、PHPのmysqlのアレイ検索
- 18. mysqlのPHPでの簡単な検索
- 19. PHPとMySQLでの検索結果
- 20. PHP/MySQLリレーショナルデータベーススキーマの検索コードとロジック
- 21. PHP、MySQLの検索エントリー機能
- 22. MySQLデータベース検索PHPの問題
- 23. php/mysql検索クエリの構文
- 24. PHP MySql検索エンジンとページネーションの作成
- 25. PHP/MySQLのより良いユーザー検索
- 26. PHP MYSQLクエリ、接続の検索
- 27. 検索MySQLとPHPの配列
- 28. MySQLとPHP:複数のキーワード検索
- 29. AJAX PHPとMYSQLライブ検索のヘルプ!
- 30. MySQLデータベースを検索するPHPスクリプト
ここではどのようなフレームワークを使用していますか? '$ query'のようなものにプレースホルダ値を使用していないのはなぜですか?直接クエリ文字列に置くことは非常に危険です。 – tadman