Как добавить ссылку на название видео, если художник? - PullRequest
0 голосов
/ 26 марта 2012

Допустим, у меня есть:

$string = '2Pac - Dear Mama';

и БД, как это:

id - some number
artist_name - 2Pac
alternative_name - Tupac
artist_slug - 2pac

Как преобразовать строку в нечто вроде:

<a href="//example.com/artist/2pac/">2Pac</a> - Dear Mama

даже если строка $ будет:

$string = 'Tupac - Dear Mama';

, преобразуйте ее в:

<a href="//example.com/artist/2pac/">Tupac</a> - Dear Mama

Может ли кто-нибудь мне помочь?Заранее спасибо.

// позднее редактирование

Я уже использую эту функцию, но мне было интересно, как проверить, есть ли у исполнителя больше имен, и сохранить ту же страницу

function artist_name($title){ global $site_url;
$words = explode("-", $title); $result = array();
foreach ($words as $word){
$word = trim($word);
$res = mysql_query("SELECT `artist_name` FROM `artists` WHERE `artist_name` = '" . mysql_real_escape_string($word) . "' LIMIT 0, 1;");
if (mysql_num_rows($res) > 0){$result[] = '<a href="'.$site_url.'artist/'.clean_slug_function($word).'/" title="'.$word.'">'.$word.'</a>';}
else{$result[] = $word;}}
$result = implode($result, " - ");
return $result;}

// я сделал это так:

function artist_name($title){ global $site_url;
$words = explode("-", $title); $result = array();
foreach ($words as $word){
$word = trim($word);
$sql = dbquery("SELECT `artist_slug` FROM `artists` WHERE `artist_name` = '".mysql_real_escape_string($word)."' OR `alternative_name` = '".mysql_real_escape_string($word)."' LIMIT 0, 1;");
while($row = dbarray($sql)){$artist_slug = $row['artist_slug'];}
if (mysql_num_rows($sql) > 0){$result[] = '<a href="'.$site_url.'artist/'.clean_slug_function($artist_slug).'/" title="'.$word.'">'.$word.'</a>';}
else{$result[] = $word;}}
$result = implode($result, " - ");
return $result;}

Пример:

для

$title = 'Tupac - Dear Mama';
echo artist_name($title);

результат будет

<a href="http://example.com/artist/2pac/" title="Tupac">Tupac</a> - Dear Mama

* уведомление 2pac URL Slug против Tupac (не 2Pac) имя

1 Ответ

1 голос
/ 26 марта 2012

1.«-» может использоваться как разделитель для разделения строки на 2 части.Содержимое строки помещается в массив.Подробнее о функции разнесения - на php.net

$string = 'Tupac - Dear Mama';
$string2 = explode(' - ',$string);
echo "<a href='//example.com/artist/2pac/'>" . $string2[0] . "</a> - " . $string2[1];

2.Я предполагаю, что у вас есть 2 таблицы, одна с артистами, а другая с песнями.

исполнители:

  • id
  • имя_художника
  • имя_ альтернативы
  • artist_slug

песни:

  • id
  • artistid
  • title

Код:

$query = "SELECT * FROM artists, songs WHERE songid = 1 AND artists.id = songs.artistid";    
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());
echo "<a href='//example.com/artist/" . $row['artist_name'] . "/'>" . $row['artist_name'] . "</a> - " . $row['title'];

3.

$res = mysql_query("SELECT `artist_name` FROM `artists` WHERE `artist_name` = '" . mysql_real_escape_string($word) . "' OR alternative_name = '" . mysql_real_escape_string($word) . "' LIMIT 0, 1;");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...