【问题标题】:MySQL + PHP: How to do search and show summary rather than entire resultMySQL + PHP:如何进行搜索和显示摘要而不是整个结果
【发布时间】:2009-07-18 20:51:01
【问题描述】:

想知道如何使用 PHP + MySQL 进行搜索结果,但不显示结果中的所有数据,而只显示摘要(假设限制为 200 个字符)。并且摘要将完全包含关键字部分。所以-100个字符+关键字+100个字符可能是它的显示方式。

谢谢!

【问题讨论】:

  • 使用 MySQL,您可以使用 LEFT() 获得前 200 个字符串,但要获得 -100 个字符串 +100 会更复杂。是否存在不止一次的关键字实例?
  • 是的.. 它可能是多个关键字。但我可以只在 FIRST 关键字周围显示摘要。

标签: php mysql search


【解决方案1】:

假设您可以在摘要中使用关键字的第一个实例,您可以在 PHP 中以类似于以下方式分解查询结果:

    $sql = "SELECT data_field FROM your_table WHERE data_field LIKE '%".$keyword."%'";
    $res = mysql_query($sql);
    while($row = mysql_fetch_array($res)) {
        $data = $row['data_field'];         
        $first_pos = strpos($data,$keyword);
        if ($first_pos !== false) {
                  $output = substr($data,max(0,$first_pos - 100),200 + strlen($keyword));
          echo $output;
        }
    }

显然,一旦你拥有了$output,你就可以做任何适合你需要的事情。

【讨论】:

  • 您好,谢谢!但是我在您的行上遇到了解析错误 $output=substr($data....
  • 糟糕,很抱歉。在复制/粘贴时弄乱了括号。立即尝试。
  • 没问题。我对其进行了另一个快速编辑,改进了关键字之后的长度计算。应该会好一点。
  • 我用 stripos 代替了不区分大小写。我确实注意到的一件事是,如果关键字在一个段落中出现多次,那么由于某种原因它不会被缩短。它显示了整个结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 2013-05-04
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
相关资源
最近更新 更多