Я хотел бы выбрать случайное видео YouTube из базы данных MySQL и отобразить его на моей веб-странице

У меня есть таблица базы данных MySQL с названием «Видео» с тремя столбцами (поля?): ID, EmbedURL и Name.

Я хотел бы использовать PHP (или что-то еще) в фактическом index.html, чтобы захватить случайное видео YouTube из БД и поместить EmbedURL в iFrame, чтобы при нажатии пользователем кнопки (или обновлении страницы) другой случайное видео из базы данных загружается.

Я знаю, что могу сделать это с помощью iframe embed, например:

<iframe width="560" height="315" src="http://www.youtube.com/embed/T0Jqdjbed40?playlist=SyoA4LXQco4,6l6PPvUhR4c" frameborder="0" allowfullscreen></iframe> 

Но я действительно хочу, чтобы на этом простом 1-страничном веб-сайте была большая, веселая, привлекательная кнопка для клика, а в iframe-встроенном проигрывателе есть эта скучная «следующая» кнопка.

Ниже приведен мой код. В качестве стартового шага я просто пытался выяснить, могу ли я получить мою страницу для отображения EmbedURL, который был сохранен в базе данных, но это не отражается на чем-либо на странице, и я знаю, что это не проблема с iframe.

Я сделал довольно тщательный поиск (60 мин) и не мог собрать все вместе. Запрос работает в phpMyAdmin.

Любые указатели оценили.

[EDIT: мой веб-хост работает PHP v. 5.2.17].

 <?php mysql_connect("localhost", "admin", "xxxxxxx") or die(mysql_error()); mysql_select_db ("my_db_name") or die(mysql_error()); $select = mysql_query("SELECT EmbedURL FROM `Videos` ORDER BY RAND() LIMIT 1"); while($row = mysql_fetch_assoc($select)) { ?> <p><?php echo $row ['EmbedURL'] ?></p> 

Похоже, что они обесценивают вызовы mysql и вместо этого рекомендуют использовать объектно-ориентированные вызовы mysqli.

http://us3.php.net/manual/en/function.mysql-connect.php

 <?php $mysqli = new mysqli("host", "username", "password", "database name"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; } echo $mysqli->host_info . "\n"; $res = $mysqli->query("SELECT EmbedURL FROM `Videos` ORDER BY RAND() LIMIT 1"); $row = $res->fetch_assoc(); ?> <iframe width="560" height="315" src="<?php echo $row['EmbedURL']; ?>" frameborder="0" allowfullscreen></iframe> <p><?php echo $row['EmbedURL'];?></p> 

Это сработало для меня на моем локальном сервере под управлением php 5.4. Первый комментарий к конструктору рекомендует использовать другой набор команд, если вы используете версию php ниже 5.2.9.

Это сценарий, который вы используете? Кажется, что в последней строке отсутствует точка с запятой.

В противном случае это кажется прекрасным. Хотя, как указано Marc B, вам не нужно использовать цикл while, если он один. И, как упоминалось в Fanis, вы должны выполнить проверку ошибок.