【问题标题】:Building a search script in PHP用 PHP 构建搜索脚本
【发布时间】:2012-06-09 22:31:11
【问题描述】:

我正在尝试在 PHP-SQL 中构建一个搜索脚本,例如 Facebook 或 Stackoverflow 使用。例如,用户可以输入多个条目;用分号分隔并在每个术语上自动完成。另外:这些值将存储在 SQL 中;那么我应该使用什么类型的数据或者我应该如何在 SQL 表中插入这些术语??

<script type="text/javascript">
 $().ready(function() {
 $("#job_type").autocomplete("get_job_list.php",
 { width: 224, matchContains: true, selectFirst: false }); });
 </script>

PHP 代码::

<?php 
require_once "connection.php";
$q = strtolower($_GET["q"]);
if (!$q) return;
$sql = "select DISTINCT itemid as itemid from eportal where itemid LIKE '%$q%'";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {
    $cname = $rs['itemid']; echo "$cname\n"; 
} 
?>

【问题讨论】:

  • 让用户在他们的帖子中添加标签,您可以通过这些标签或他们帖子的标题进行搜索。我认为LIKE SQL 关键字会有所帮助...
  • 我认为你需要更加特别,如果你想要像@rcplusplus 说我更喜欢这种方式给你。用分号将它们存储为文本格式,然后您可以使用 explode 来分隔每个标签。

标签: php sql search autocomplete


【解决方案1】:

将所选标签添加到结构为query_id tag_id 的表中(您还需要一个结构为tags 的表tag_id tag_name。这样您的查询将更加轻松快捷。此外,您将能够轻松获取最流行的标签。SQL 用于存储此类数据。使用逗号分隔值违反 SQL 的基础。

【讨论】:

  • 我使用了这个概念并像这样编码。有效。虽然不得不努力摆脱 CSS 部分,但后端代码有效。谢谢。 $q=$_POST['searchword']; $sql_res = mysql_query("SELECT tag_id, tag_name FROM my_tags WHERE tag_name like '%$q%' ORDER BY tag_id LIMIT 5"); while($row=mysql_fetch_array($sql_res)) { $tagid=$row['tag_id']; $tagname=$row['tag_name']; $re_tagname='&lt;b&gt;'.$q.'&lt;/b&gt;'; $final_tagname = str_ireplace($q, $re_tagname, $tagname);
猜你喜欢
  • 1970-01-01
  • 2012-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 2012-01-21
  • 2010-10-31
相关资源
最近更新 更多