0

我正在尝试根据数据库中的数据进行简单的 youtube 搜索。数据正在被放入一个表中,我希望将歌曲名称作为指向该歌曲的 youtube 搜索的链接。这个想法是将艺术家姓名和歌曲名称添加到 youtube 搜索 URL 的末尾。

问题是当艺术家姓名或歌曲名称超过一个单词时,搜索只包括第一个单词。我现在正在使用以下代码:

<table class="table table-striped table-hover table-bordered">
    <th>Song Name</th>
    <th>Artist</th>
<?php
// Create connection
$con=mysqli_connect("localhost","root","checkout","Music Database");

// Check connection
if (mysqli_connect_errno($con))
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM MusicDB");

while($row = mysqli_fetch_array($result))
  {
    echo "<tr><td><a href=https://www.youtube.com/results?hl=en&q=".$row['Song']."+".$row['Artist'].">".$row['Song']."</a></td>";
    echo "<td>".$row['Artist']."</td>"."</tr>";
  }


mysqli_close($con);

?>
</table>

例如,如果歌曲是“Michael Jackson”的“Beat It”,它只会在搜索中添加“beat”。

如果歌曲是“Thriller”,则会添加“Thriller+Michael”。

如果我添加“Maclemore”的歌曲“Thrift Shop”,它只会在搜索中添加“thrift”。

任何想法或想法将不胜感激。

4

1 回答 1

0

用于urlencode对查询字符串中的值进行编码。

"<tr><td><a href=https://www.youtube.com/results?hl=en&q=". urlencode($row['Song'] . " " . $row['Artist']).">".$row['Song']."</a></td>";

您也可以使用http_build_query.

"<tr><td><a href=https://www.youtube.com/results?" . http_build_query(array(
  "hl" => "en",
  "q" => $row['Song'] . " " . $row['Artist']
)).">".$row['Song']."</a></td>";
于 2013-03-29T15:24:31.740 回答