ホームページ >バックエンド開発 >PHPチュートリアル >PHP データベースは特定のフィールドの内容を分類します
お尋ねしたいのですが、データベース内のすべての犯罪タイプを含むムービーを出力したいのですが、実際には、タグ分類に従ってムービーを分類することになります。
次のようなファジー クエリを実行したところ、
$sql="select * from movie where tag like '%犯罪%'";$result=mysql_query($sql);var_dump($sql);の結果は次のようになりました: string 'select * from movie where tag like '%Crime%'' (length=45)
クエリ結果は $result リソースに設定されていませんか?
無言。 。 。 。私は間違っていました
、そして私は正しかったです。出力した SQL ステートメントがその結果ではない場合、どのような結果が必要ですか?
次のように書くこともできます
select * from movie where find_in_set('Crime',tag)
結果セットは $result リソースでクエリされませんか?
もっと良い分類方法はありますか? 。 。
また、私は SQL ステートメントについてあまり知りません。コメディと映画のタイトルを同時に検索したい場合は、どのように記述すればよいですか?
データがよく整理されていません。タグはカンマで区切られており、find_in_set 関数を直接使用できます
もちろん今でも可能ですが、追加のトリックが必要です
select * from movie where find_in_set('comedy', replace(tag,'|',' 、'))
さて、これら 2 つを変更しました。 いくつか文章を書いてもらえますか? 1 つは、コメディと犯罪をそれぞれ出力することです。もう 1 つは、「犯罪」と「映画のタイトル」を同時にクエリすることです
私は 4 日間書き続けてきましたが、これは基本的に Baidu と Google で吐きそうになった最後のステップです。 。 。 。
この分類表について通りすがりに文句を言う、ゴッドファーザー、バットマン、パルプフィクション、シンドラーのリストのカテゴリーはすべて欠陥です
この分類表について通りすがりに文句を言う、ゴッドファーザー、バットマン、パルプフィクション、とシンドラーのリスト これらはすべて欠点です
笑、それらは Douban から直接取得されています
データが適切に整理されていない場合は、find_in_set 関数を直接使用できます
もちろん、今でもそれは可能です。でも、追加のトリックが必要です
select * from movie where find_in_set('comedy', replace(tag,'|',','))
そうですね、この 2 つの文を書いてもらえますか。 、、、1つは、コメディと犯罪のアウトプットを分離することです。もう 1 つは、「犯罪」と「映画のタイトル」を同時にクエリすることです
私は 4 日間書き続けてきましたが、これは基本的に Baidu と Google で吐きそうになった最後のステップです。 。 。 。
最初にタグテーブルを構築することをお勧めします
name
Comedy
Crime
Drama
.....
基本的な SQL コマンドは
select * from movie, tags where find_in_set(tags.name, movie.tag )
犯罪の出力
select * from movie, tags where find_in_set(tags.name, movie.tag) and tags.name='crime'
コメディの出力
select * from movie, tags where find_in_set(tags.name, movie .tag) と tags.name='comedy'
最初にタグ テーブルを作成することをお勧めします
name
コメディ
犯罪
プロット
.....
基本的な SQL コマンドは
select * from movie, tags where find_in_set(tags.name, movie.tag)
犯罪を出力する
select * from movie, tags where find_in_set(tags.name, ……
さて、書き出しただけですが、何も出力されません。ページは空白です
$sql=mysql_query("select * from movie where find_in_set('犯罪',movie.tag) ");$result = mysql_fetch_array($sql);print_r( $result);
$sql2="SELECT * FROM movieWHERE title='The Shawshank Redemption' AND tag LIKE '%犯罪%'";$result2=mysql_query($sql2);print_r( mysql_fetch_array($result2));
var_dump($sql); 出力結果は resource(5, mysql result) です
var_dump($result); 出力結果は boolean false です