ホームページ  >  記事  >  バックエンド開発  >  PHP データベースは特定のフィールドの内容を分類します

PHP データベースは特定のフィールドの内容を分類します

WBOY
WBOYオリジナル
2016-06-23 14:03:01890ブラウズ


お尋ねしたいのですが、データベース内のすべての犯罪タイプを含むムービーを出力したいのですが、実際には、タグ分類に従ってムービーを分類することになります。
次のようなファジー クエリを実行したところ、

$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 です



. 。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。