想问一下,我想把数据库里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)我那个语句写得不对吗?还有,有没有更好的分类方法啊数据库phpsql

解决方案 »

  1.   

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

  2.   

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

  3.   

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

  4.   

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

  5.   


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

  6.   


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

  7.   

    建议你先建一个 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='喜剧'
      

  8.   


    恩恩 ,我刚才写出来了,可是什么都输不出来啊,页面空白
    $sql=mysql_query("select * from movie where find_in_set('犯罪',movie.tag)  ");
    $result = mysql_fetch_array($sql);
    print_r( $result);
    查询的时候这样写的 
    $sql2="SELECT * FROM movie
    WHERE  title='The Shawshank Redemption' AND tag LIKE '%犯罪%'";
    $result2=mysql_query($sql2);print_r( mysql_fetch_array($result2));
      

  9.   

    var_dump($sql); 输出的结果是 resource(5, mysql result)
     var_dump($result); 输出结果是 boolean false
    头都大了。
      

  10.   

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

  11.   

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