让我说我有:
$title = "Rihanna - Man Down";
和一个数据库有多行,包括一个名为“name”的字段,其中包含“Rihanna”值
现在......我如何检查$ title中是否存在“Rihanna”,如果它确实如何在“Rihanna”上添加如下链接:
用其他词来检查$ title中的一个表达是否存在于数据库中
<a href="artist?id=Rihanna">Rihanna</a> - Man Down
我想像youtube那样做一些事情;音乐视频更清晰
答案 0 :(得分:3)
如果我理解正确,可以做这项工作:
然后首先在DataBase中搜索,您的查询必须是这样的:
//在提交的“名称”
中搜索DataBase中的单词$title = "Rihanna - Man Down";
$arr = explode('-', $title);
$title = $arr[0];
$result = mysql_query("SELECT name FROM table WHERE name LIKE '%" . mysql_real_escape_string($title) . "%'");
//如果找到结果,那么我们在此循环中替换并生成链接
while($row = mysql_fetch_array( $result )) {
$str = str_replace($title, '<a href="artist?id='.$title.'">'.$title.'</a>', $row['name']);
echo $str; //<a href="artist?id=Rihanna">Rihanna</a> - Man Down
}
答案 1 :(得分:1)
将标题拆分为单词,并为每个单词检查数据库是否包含具有该名称的行。如果是,请用链接替换该单词的出现。
foreach (preg_split("/\s+/", $title) as $word) {
if (word_in_database($word)) {
$title = str_replace($word, "<a href=\"artist?id=$word\">$word</a>", $title);
}
}
答案 2 :(得分:1)
$words = explode("-", $title);
$result = array();
foreach ($words as $word)
{
$word = trim($word);
$res = mysql_query("SELECT name FROM table WHERE name='" . mysql_real_escape_string($word) . "'");
if (mysql_num_rows($res) > 0)
{
$result[] = '<a href="artist?id=' . $word . '">' . $word . '</a>';
}
else
{
$result[] = $word;
}
}
$result = implode($result, " - ");
如果来自其他艺术家的歌曲名为Pink,但您的数据库中有艺术家Pink,则会链接到“artist?id = Pink”。