如何改进我的YouTube搜索功能?

时间:2013-03-29 15:10:57

标签: php sql search youtube

我正在尝试根据数据库中的数据执行简单的youtube搜索。数据被放入一个表格中,我想让歌曲名称成为youtube搜索该歌曲的链接。我们的想法是将艺术家姓名和歌曲名称添加到youtube搜索网址的末尾。

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

<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>

例如,如果歌曲是“迈克尔杰克逊”的“Beat It”,它只会在搜索中添加“beat”。

如果这首歌是“Thriller”,它将添加“Thriller + Michael”。

如果我通过“Maclemore”添加歌曲“Thrift Shop”,它将只为搜索添加“节俭”。

非常感谢任何想法或想法。

1 个答案:

答案 0 :(得分: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>";