MySQL数据存储用逗号如何在自动完成中获取单独的单词

时间:2018-07-19 08:36:10

标签: javascript php jquery html mysql

在mysql数据库中,当获取结果时,它用逗号存储数据,显示逗号。 我希望逗号隐藏后和逗号显示后的每个单词在下一行中分开。而且我不想对数据库进行任何更改,因为该数据库还与其他代码连接。只想更改代码。

ScreenShot:   (index ) (connect ) (Database ) (Preview

2 个答案:

答案 0 :(得分:0)

在获取数据时,爆炸包含逗号的字符串。像这样

$a=explode(',',$row['keyword']);
  foreach($a as $keyword)
  {
    echo $keyword;
  }

答案 1 :(得分:0)

explode()trim()将为您完成这项工作。

$searchTerms = "Blue iconer, Web design, Tester";
$searchTermsArrayTemp = explode(",", $searchTerms); //build an array exploding the string using comma delimiter.
$searchTermsArray = array_map('trim', $searchTermsArrayTemp); //remove the unwanted trailing and leading spaces.
foreach ($searchTermsArray AS $searchTerm)
{
    echo $searchTerm;
}

/*
 * Blue iconer
 * Web design
 * Tester
 */

就我个人而言,我不会以这种方式构建数据库,这将导致删除/添加/编辑关键字很麻烦,并且某些关键字在其他业务上可能是多余的(DRY !)。

我将为关键字使用一个单独的表:

关键字

id | word
---+------------
1  | Blue iconer
2  | Web design
3  | Tester

一个公司可以有1个或多个关键字(1,n)

一个关键字可以拥有1个或多个业务(1,n)

两个表之间有一个多对多关系,从而产生一个中间表 businesskeywords

业务关键字

business_id | keyword_id
------------+------------
5           | 1
5           | 2
5           | 3

哪些关键字的ID为5?

SELECT keyword.word
FROM keyword
INNER JOIN businesskeywords ON businesskeywords.keyword_id = keyword.id
WHERE businesskeywords.business_id = 5

哪些公司的关键字为 Tester

SELECT business.id_business, business.name
FROM business
INNER JOIN businesskeywords ON businesskeywords.business_id = business.id_business
INNER JOIN businesskeywords ON businesskeywords.keyword_id = keyword.id
WHERE keyword.word LIKE '%Tester%'