【问题标题】:php How to search for keywords in mysqlphp如何在mysql中搜索关键字
【发布时间】:2016-12-01 18:06:00
【问题描述】:
我正在使用带有 php 的 mysql 数据库。我正在创建一个照片库网站,我将在其中使用他们的关键字搜索图像。关键字已存储在数据库中,由 , 分隔
我想创建一个搜索字段,在其中我会得到像“圣诞快乐”这样的查询。我将使用 implode 函数使这两个关键字变得快乐,然后是圣诞节。我想在关键字字段中搜索这两个词来搜索与这些结果匹配的图像,并按照最大下载量的顺序返回它们。下载量也是数据库中的另一列,其中包含总下载量的信息。基本上我是 SQL 新手。任何帮助将不胜感激。提前致谢。
【问题讨论】:
标签:
php
mysql
database
search
【解决方案1】:
假设您表单中的字段名称是“关键字”,我认为这或多或少是您想要做的。
if (isset($_POST['keywords']) && $_POST['keywords']) {
//explode with space
$keywordList = explode(' ', $_POST['keywords']);
//create OR clause for each keyword submitted
$keywordClauseArr = array();
foreach ($keywordList as $keyword) {
$keywordClauseArr[] = "keywords LIKE '%$keyword%'";
}
//implode with OR
$keywordClause = implode(' OR ', $keywordClauseArr);
//finally create your sql string
$sql = 'SELECT * FROM photos WHERE ' . $keywordClause . ' ORDER BY downloads DESC';
//and then do your mysql query and other stuffs..
}
这将使用按最大下载量排序的关键字 Merry 或 Christmas 获取结果。谢谢。