2013-03-29 5 views
0

저는 데이터베이스의 데이터를 기반으로 간단한 YouTube 검색을 수행하려고합니다. 데이터가 테이블에 저장되고 있으며 노래 이름을 해당 노래에 대한 YouTube 검색에 대한 링크로 사용하고 싶습니다. 아이디어는 아티스트 이름과 노래 이름을 YouTube 검색 URL 끝에 추가하는 것입니다.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> 

예를 들어, 노래가 "마이클 잭슨"에 의해 "그것을 이길", 그것은 단지 검색에 추가 "이길"것입니다.

노래가 "스릴러"인 경우 "스릴러 + 마이클"이 추가됩니다.

"Maclemore"로 "Thrift Shop"노래를 추가하면 검색에 "thrift"만 추가됩니다.

어떤 생각이나 아이디어라도 크게 기뻐할 것입니다.

답변

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>"; 
+0

고맙습니다! 나는이 두 가지 기능을 모르고 있었다. 도와 주셔서 정말 고맙습니다. – bornytm

관련 문제