0

データベース内のデータに基づいて、簡単な youtube 検索を実行しようとしています。データはテーブルに入れられており、曲名をその曲の YouTube 検索へのリンクにしたいと考えています。アイデアは、アーティスト名と曲名を youtube 検索 URL の末尾に追加することです。

問題は、アーティスト名または曲名が 1 単語より長い場合、検索に最初の単語しか含まれないことです。現在、次のコードを使用しています。

<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 に答える