首頁 >後端開發 >php教程 >php数据库对某字段内容分类

php数据库对某字段内容分类

WBOY
WBOY原創
2016-06-23 14:03:01923瀏覽


想问一下,我想把数据库里tag所有犯罪类型的电影输出,其实也就是根据tag分类把电影分类输出,要怎么办呢?
我通过like的模糊查询,

$sql="select * from movie where tag like '%犯罪%'";$result=mysql_query($sql);var_dump($sql);
结果 输出结果这样 string 'select * from movie where tag like '%犯罪%'' (length=45)

我那个语句写得不对吗?还有,有没有更好的分类方法啊


回复讨论(解决方案)

查询出的结果集不是在 $result 资源里吗?

无语了。。。。我错了

是对的。你打印sql语句不是那个结果还想要什么结果?
这样写也可以
select * from movie where find_in_set('犯罪',tag)  

查询出的结果集不是在 $result 资源里吗?

有没有更好的分类方法啊。。。

还有我对sql语句并不了解,新手,我要想同时搜索 喜剧 和 电影名称 该怎么写啊

你的数据组织的不好,如果 tag 是用逗号分隔的就可以直接使用 find_in_set 函数
当然现在也是可以的,不过要多一套手脚
select * from movie where find_in_set('喜剧', replace(tag,'|',','))


嗯 我改了,这两句能不能帮我写一下啊,,,,一个是分别把喜剧的,犯罪的输出。 还有一个就是同时查询 犯罪 和 电影名 
写了4天了,最后一步了,基本上是0基础开始学习的,百度google的都快吐了,,,,,求帮助。。。

路过吐槽这分类表格,教父,蝙蝠侠,低俗小说,辛德勒的名单的类别都是槽点

路过吐槽这分类表格,教父,蝙蝠侠,低俗小说,辛德勒的名单的类别都是槽点
呵呵 直接从豆瓣抓取的

你的数据组织的不好,如果 tag 是用逗号分隔的就可以直接使用 find_in_set 函数
当然现在也是可以的,不过要多一套手脚
select * from movie where find_in_set('喜剧', replace(tag,'|',','))

嗯 我改了,这两句能不能帮我写一下啊,,,,一个是分别把喜剧的,犯罪的输出。 还有一个就是同时查询 犯罪 和 电影名 
写了4天了,最后一步了,基本上是0基础开始学习的,百度google的都快吐了,,,,,求帮助。。。

建议你先建一个 tags 表
name
喜剧
犯罪
剧情
.....

基本的 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='犯罪'
把喜剧的输出
select * from movie, tags where find_in_set(tags.name, movie.tag) and tags.name='喜剧'

建议你先建一个 tags 表
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
头都大了。。。。

select * from movie,  tags where find_in_set(tags.name, movie.tag) and tags.name='喜剧'
从两个表格里查数据,不是一个。。。

无语了。。。。我错了
哈哈

LZ你现在mysql里运行,看看报什么错。。

查询出的结果集不是在 $result 资源里吗?

版主高手啊~~

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn