select * from member where data!=''  order by time desc Limit 0,10上面得出前十行倒序排列的数据,如何才能进一步比对这十行数据包含关健词的条数?即:data like '%$keyword%' 得出上面10条中有几条包含该关健词?

解决方案 »

  1.   

    select  *
    from (
    select * from member where data!='' order by time desc Limit 0,10
    )T
    where data like '%$keyword%'
      

  2.   

    select * from 
    (select * from member where data!=''order by time desc limit 0,10
    )a
    where data like'%$keyword%'
      

  3.   


    测试了一下,出错:Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in麻烦再帮看看
      

  4.   


    T换成a也同样出错:Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in麻烦再帮看看!谢
      

  5.   

    $sql="select * from member where `data` like '%$keyword%' order by `time` desc Limit 0,10";
      

  6.   

    你的代码是什么,MYSQL什么版本
      

  7.   


    一开始我也是这样想的,但这样只能得到data=$keyword的数值,比如有一千条数据,不管如果它都会搜索出包含$keyword的总条数的前10条。 而我要先得到倒序10条,再比较这10条中有几条包含$keyword
      

  8.   

    跟代码没啥关系吧:
    $query="select * from 
    (select * from member where data!=''order by time desc limit 0,10
    )a
    where data like'%$keyword%'
    ";
    $result=$obj_db->simplequery($query);
    while ($arr=$obj_db->fetchrow($result,DB_FETCHMODE_ASSOC))
    {
    $list.="$arr[data]<br>";
    }MYSQL本地安装调试的,有点老:
    MySQL 4.0.24-nt
      

  9.   

    那你的代码有什么问题。你的data和time字段是保留字 ,需要加 `data` `time` 转义。
      

  10.   

    难道一句mysql语句不能完成?那能不能先输出10条:
    select * from member where data!='' order by time desc Limit 0,10输出10条了,再
    foreach ($list as $v){
    比对出与$keyword相同的数据  得出 $count
    }if ($count>0){
    echo "<script type='text/javascript'> alert('最近发布的前10条已包含 $count 条与你提交的 $keyword 相同的内容!');history.go(-1);</script>";
    exit();
    }只有思路,哪位高手能把代码写出?或者有更简便的方式?
      

  11.   


    与这个无关,整个都改成 `mydata` `mytime`一样也出错:
    select * from 
    (select * from member where mydata!=''order by mytime desc limit 0,10
    )a
    where mydata like'%$keyword%'
      

  12.   

    你又不提供出错信息。谁知道哪里出错了。在php里面处理也是可以的。
    $count=0;
    foreach ($list as $v){
        if($v==$keyword) $count++;
    }if ($count>0){
    echo "<script type='text/javascript'> alert('最近发布的前10条已包含 $count 条与你提交的 $keyword 相同的内容!');history.go(-1);</script>";
    exit();
    }
      

  13.   

    出错信息就是显示无数条:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
    我要比对:%$keyword%
    比如:一二三四五六,二三四五六七,五六七八九,关键词$keyword是“四五”,那前面就有二条包含关键词if($v==$keyword)能实现吗?
      

  14.   

    sql语句出错了。
    $result=$obj_db->simplequery($query) or die (mysql_error()); //这样提示什么错误foreach ($list as $v){
      if(strpos($v,$keyword) !== false) $count++;
    }这样查找。
      

  15.   


    晕,又出这个错了,帮看看:
    Warning: Invalid argument supplied for foreach() in e:\appserv\www\index.php on line 133代码:
    $query="select * from member where data!='' order by time desc Limit 0,10";
    $result=$obj_db->simplequery($query);
    while ($arr=$obj_db->fetchrow($result,DB_FETCHMODE_ASSOC))
    {
    $list.="$arr[data]";
    }$count=0;
    foreach ($list as $v){
    if(strpos($v,$keyword) !== false) $count++;
    }if ($count>0){
    echo "<script type='text/javascript'> alert('最近发布的前10条已包含 $count 条与你提交的 $keyword 相同的内容!');history.go(-1);</script>";
    exit();
    }
      

  16.   

    $list.="$arr[data]"; 改为
    $list[]=$arr[data];