X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Не выводится плеер в цикле...
Rabineta
Rabineta
Topic Starter сообщение 23.12.2010, 22:46; Ответить: Rabineta
Сообщение #1


Участник
***

Группа: User
Сообщений: 209
Регистрация: 5.2.2010
Из: Питер
Поблагодарили: 68 раз
Репутация:   25  


Возник такой вопросик... Вот, пытаюсь в цикл вывести маленькую табличку, в которой будет название песенки, плеер, и ссылки на скачивание... Вот, столкнулся с такой фигней - плеер не показывается! т.е. задний фон плеера и разметка появляется, а кнопочек прослушивания нет(см. скрин. Серые поля, это то место, где должен быть плеер)... Ниже код... Может кто знает, почему возникает такая ситуёвина?

<?php
$name = $row['name'];
$text = $row['text'];
$time = $row['time'];
$url = $row['url'];
$play = <<<SOMEHTML

<object type="application/x-shockwave-flash" data="http://flv-mp3.com/i/pic/ump3player_500x70.swf" height="89" width="600"><param name="wmode" VALUE="transparent" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://flv-mp3.com/i/pic/ump3player_500x70.swf" /><param name="FlashVars" value="way=$url&amp;swf=http://flv-mp3.com/i/pic/ump3player_500x70.swf&amp;w=600&amp;h=89&amp;time_seconds=$time&amp;autoplay&amp;q=1&amp;skin=grey&amp;volume=70&amp;comment=$name" /></object>

SOMEHTML;

$result = mysql_query ("SELECT name, text, url, time, name_sistem FROM audio");
while($row = mysql_fetch_assoc($result)){
  echo "


<table width='500' border='0' align='center' id='aud_play'>
          <tr>
            <td>{$row['name']}</td>
          </tr>
          <tr>
            <td>$play</td>
          </tr>
          <tr>
            <td><a href='{$row['url']}'>Save</a></td>
          </tr>
          </table>


";
}
      ?>

Прикрепленное изображение
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
G_Market
G_Market
сообщение 24.12.2010, 11:54; Ответить: G_Market
Сообщение #2


Новичок
*

Группа: User
Сообщений: 45
Регистрация: 22.9.2010
Поблагодарили: 18 раз
Репутация:   5  


В каждой из приведенных строк
$name = $row['name'];
$text = $row['text'];
$time = $row['time'];
$url = $row['url'];

происходит ошибка, и интерпретатор PHP выдает сообщение типа (но у Вас видимо в PHP отключен вывод ошибок и Вы их не видите)
Notice: Undefined variable: row in имя_файла.php on line номер_строки

В результате эти переменные остаются пустыми, и в переменной $play у Вас оказывается следующий HTML-код
<object type="application/x-shockwave-flash" data="http://flv-mp3.com/i/pic/ump3player_500x70.swf" height="89" width="600"><param name="wmode" value="transparent"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="movie" value="http://flv-mp3.com/i/pic/ump3player_500x70.swf"><param name="FlashVars" value="way=&amp;swf=http://flv-mp3.com/i/pic/ump3player_500x70.swf&amp;w=600&amp;h=89&amp;time_seconds=&amp;autoplay&amp;q=1&amp;skin=grey&amp;volume=70&amp;comment="></object>

который Вы и дублируете в каждой таблице, и который отображается в виде серого прямоугольника (из-за того что в этом коде не заданы такие важные для плеера параметры как 'way=' и 'time_seconds=' )

Да и нельзя загнать весь этот HTML-код плеера в переменную, а потом в цикле применять переменную для разных аудиотреков без использования замен в тексте этого кода (даже если бы Вам удалось при инициализации переменной $play задать в ней данные какого-то конкретного трека, то при использовании приведенного в топике PHP-кода в цикле было бы выведено несколько плееров с одним и тем же треком).

Сообщение отредактировал G_Market - 24.12.2010, 12:00


--------------------
Товары и цены в магазинах Вашего города: Городской рынок


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Rabineta
Rabineta
Topic Starter сообщение 24.12.2010, 13:48; Ответить: Rabineta
Сообщение #3


Участник
***

Группа: User
Сообщений: 209
Регистрация: 5.2.2010
Из: Питер
Поблагодарили: 68 раз
Репутация:   25  


Спасибо! Но как же тогда быть, если HTML код нельзя в переменную загнать и в цикле применять? Я в этом дилетант (2 недели только программировать учусь), так что это единственный вариант, который я смог придумать для решения данной задачи)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
G_Market
G_Market
сообщение 24.12.2010, 15:26; Ответить: G_Market
Сообщение #4


Новичок
*

Группа: User
Сообщений: 45
Регистрация: 22.9.2010
Поблагодарили: 18 раз
Репутация:   5  


попробуйте так
сначала создаете переменную с шаблоном плееера, где вместо данных конкретного трека некий текст.

$name = "ххnameхх";
$time = "xxtimexx";
$url = "xxurlxx";
$play = <<<SOMEHTML

<object type="application/x-shockwave-flash" data="http://flv-mp3.com/i/pic/ump3player_500x70.swf" height="89" width="600"><param name="wmode" VALUE="transparent" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://flv-mp3.com/i/pic/ump3player_500x70.swf" /><param name="FlashVars" value="way=$url&amp;swf=http://flv-mp3.com/i/pic/ump3player_500x70.swf&amp;w=600&amp;h=89&amp;time_seconds=$time&amp;autoplay&amp;q=1&amp;skin=grey&amp;volume=70&amp;comment=$name" /></object>

SOMEHTML;

а дальше уже вывод, где после каждого получения новых данных в переменной $str_play создаете код конкретного плеера, вставляя в строку шаблона реальные данные трека.

$result = mysql_query ("SELECT name, text, url, time, name_sistem FROM audio");
while($row = mysql_fetch_assoc($result)){
  $str_play = str_replace($name, $row['name'], $play);
  $str_play = str_replace($time, $row['time'], $str_play);
  $str_play = str_replace($url, $row['url'], $str_play);

  echo "
        <table width='500' border='0' align='center' id='aud_play'>
          <tr>
            <td>{$row['name']}</td>
          </tr>
          <tr>
            <td>$str_play</td>
          </tr>
          <tr>
            <td><a href='{$row['url']}'>Save</a></td>
          </tr>
        </table>
";
}


--------------------
Товары и цены в магазинах Вашего города: Городской рынок


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Rabineta
Rabineta
Topic Starter сообщение 24.12.2010, 16:20; Ответить: Rabineta
Сообщение #5


Участник
***

Группа: User
Сообщений: 209
Регистрация: 5.2.2010
Из: Питер
Поблагодарили: 68 раз
Репутация:   25  


С помощью одного замечательного человека нашел решение) Все оказалось очень просто))) Надо было переменные переставить в другое место)) Привожу результат ниже. Мало ли у кого-то такая-же проблема будет. Всем большое спасибо.
<?php
$result = mysql_query ("SELECT name, text, url, time, name_sistem FROM audio");
while($row = mysql_fetch_assoc($result)){
$name = $row['name'];
$text = $row['text'];
$time = $row['time'];
$url = $row['url'];
    $play = <<<SOMEHTML

<object type="application/x-shockwave-flash" data="http://flv-mp3.com/i/pic/ump3player_500x70.swf" height="89" width="600"><param name="wmode" VALUE="transparent" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://flv-mp3.com/i/pic/ump3player_500x70.swf" /><param name="FlashVars" value="way=$url&amp;swf=http://flv-mp3.com/i/pic/ump3player_500x70.swf&amp;w=600&amp;h=89&amp;time_seconds=$time&amp;autoplay&amp;q=1&amp;skin=grey&amp;volume=70&amp;comment=$name" /></object>

SOMEHTML;

echo "


<table width='500' border='0' align='center' id='aud_play'>
          <tr>
            <td>{$row['name']}</td>
          </tr>
          <tr>
            <td>$play</td>
          </tr>
          <tr>
            <td><a href='{$row['url']}'>Save</a></td>
          </tr>
          </table>


";
}
      ?>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) нужно сделать плеер
12 Profytball 4098 16.8.2008, 21:05
автор: KeYZeD


 



RSS Текстовая версия Сейчас: 14.12.2017, 19:27
Дизайн