欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-06-05 17:10:29
...
想问一下,我想把数据库里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 资源里吗?

版主高手啊~~