我正在尝试根据数据库中的数据执行简单的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”,它将只为搜索添加“节俭”。
非常感谢任何想法或想法。
答案 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>";