在mysql数据库中,当获取结果时,它用逗号存储数据,显示逗号。 我希望逗号隐藏后和逗号显示后的每个单词在下一行中分开。而且我不想对数据库进行任何更改,因为该数据库还与其他代码连接。只想更改代码。
答案 0 :(得分:0)
在获取数据时,爆炸包含逗号的字符串。像这样
$a=explode(',',$row['keyword']);
foreach($a as $keyword)
{
echo $keyword;
}
答案 1 :(得分:0)
$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%'