2016-06-20 2 views
0

Я пытаюсь создать xml sitemap У меня есть столбец album_image в моей базе данных. в начале дня я не загружал альбом и хранилище столбцов «0» как значение после нескольких лет назад, я начал загружать альбом. теперь я хочу создать для него карту сайта. если album_image == 0 отображает статическое изображение, то покажет альбом iamge. Как я могу использовать, если Постулаты в $ XML =Ошибка анализа: ошибка синтаксиса, неожиданный T_IF при анализе if statement в xml sitemap

$xml .= '<image:image>'; 
     $xml .= '<image:loc>'.SITE_URL. if($row->album_image == '0'){'images/video_icon.png'}else{'media/'.$row->cat_id.'/images/'.$row->album_image.'}</image:loc>'; 
     $xml .= '<image:caption>'.$row->album_name.'</image:caption>'; 
     $xml .= '</image:image>'; 

я получаю эту ошибку "Ошибка синтаксического анализа:. синтаксическая ошибка, неожиданный T_IF в E: \ WAMP \ WWW \ сайт \ карта сайта-album.php на линии 15 "

+0

Вы не можете положить, если заявление там. вам нужно отделить его. – Farkie

+0

В принципе, я не кодер, вы можете объяснить, как это сделать. – Arman

+0

Возможно, неправильный сайт для вас ... но я ответил ниже. – Farkie

ответ

1

Вам нужно отделить, если условие:.

$xml .= '<image:image>'; 
$xml .= '<image:loc>'.SITE_URL; 

if($row->album_image == '0') { 
    $xml .= 'images/video_icon.png'; 
} else { 
    $xml .= 'media/'.$row->cat_id.'/images/'.$row->album_image; 
} 

$xml .= '</image:loc>'; 
$xml .= '<image:caption>'.$row->album_name.'</image:caption>'; 
$xml .= '</image:image>'; 
0

вы можете пользователю это также $ XML = '';

$xml .= '<image:loc>'.SITE_URL. ($row->album_image == '0')?'images/video_icon.png':'media/'.$row->cat_id.'/images/'.$row->album_image.'</image:loc>'; 
    $xml .= '<image:caption>'.$row->album_name.'</image:caption>'; 
    $xml .= '</image:image>'; 
0

полный код приведен ниже. Теперь я м адресности «Синтаксическая ошибка: синтаксическая ошибка, неожиданный„=“в»

$sql = "SELECT * from albums LIMIT 0, 1"; 
$query = mysql_query($sql); 
if(mysql_num_rows($query) > 0){ 
    while($row = mysql_fetch_object($query)){ 
     $xml .= '<url>'; 
     $xml .= '<loc>'.SITE_URL.$row->album_url.'-album-1</loc>'; 
     $xml .= '</url>'; 
     $xml .= '<image:image>'; 
     $xml .= '<image:loc>'.SITE_URL; 

     if($row->album_image == '0') { 
      $xml . = 'images/video_icon.png'; 
     } else { 
      $xml .= 'media/'.$row->cat_id.'/images/'.$row->album_image.'; 
     } 

     $xml .= '</image:loc>'; 
     $xml .= '<image:caption>'.$row->album_name.'</image:caption>'; 
     $xml .= '</image:image>'; 
    } 
} 
$xml .= '</urlset>'; 
echo $xml; 
+0

Я исправил свой код. Используйте это вместо этого. Вы не должны публиковать ответ в виде обновления. – Farkie

0

заявление Каждый PHP должен заканчиваться запятой (;).

Имеет исключение: последний оператор в файле.

echo заявление после некоторого кода требует, чтобы предыдущий оператор был закрыт.

Конкатенация может работать, но для echo закрытие предыдущего заявления является единственным вариантом.

Используйте тернарный оператор и сохраните результат в переменной.

Используйте эту переменную, чтобы сделать код читаемым.

Полный код:

$videoImage = ($row->album_image == '0') ? 'images/video_icon.png' : 'media/'.$row->cat_id.'/images/'.$row->album_image; 
$xml .= '<image:image>'; 
$xml .= '<image:loc>'.SITE_URL . $videoImage . '</image:loc>'; 
$xml .= '<image:caption>'.$row->album_name.'</image:caption>'; 
$xml .= '</image:image>'; 
Смежные вопросы