私はこのコードを持っています: 'などをクエリ文字列から取得し、ユーザーを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. PHP/MySQL - 検索クエリ
- 2. mysql phpで検索
- 3. PHP MySQL検索クエリ
- 4. php mysql検索クエリ
- 5. PHP MYSQL:検索ワードクエリ
- 6. PHPのmysqlの検索アドバイス
- 7. PHP MySQl検索エンジンのアドバイス
- 8. 予約の検索(MYSQL + PHP)
- 9. mysqlのPHP検索エンジン
- 10. PHP MYSQLチェックボックスの検索
- 11. PHP MySQLのLIKE検索
- 12. 高度な検索PHP、MySQL
- 13. mySQLプログラムエラーでPHPを検索
- 14. 配列検索PHP mysql PDO
- 15. PHPフォーム検索MySQLデータベース
- 16. ライブ検索PHPとMySQL
- 17. 検索PHP/MySQLは改ページ
- 18. PHP/MySQL:簡易検索エンジン
- 19. phpとmysqlで検索
- 20. MySQL/PHP検索機能?
- 21. PHP MYSQL - 検索結果の検索と並べ替え
- 22. は、PHPのmysqlのアレイ検索
- 23. MySQLのPHPの部分検索
- 24. Mysql - PHPの異なる値の検索
- 25. PHP MySQLの検索の提案
- 26. mysqlのPHPでの簡単な検索
- 27. PHPのmysqlの検索全文
- 28. php/mysql検索クエリの構文
- 29. PHP/MySQLリレーショナルデータベーススキーマの検索コードとロジック
- 30. PHP/MySQLのより良いユーザー検索
ここではどのようなフレームワークを使用していますか? '$ query'のようなものにプレースホルダ値を使用していないのはなぜですか?直接クエリ文字列に置くことは非常に危険です。 – tadman