我想从MySQL数据库中选择一个随机的YouTube视频,并将其显示在我的网页上

时间:2012-10-12 20:45:02

标签: php mysql random youtube

我有一个名为'Videos'的MySQL数据库表,只有三列(字段?):ID,EmbedURL和Name。

我想在实际的index.html中使用PHP(或其他东西)来从数据库中抓取一个随机的YouTube视频,并将EmbedURL放入iFrame,以便在用户点击按钮时(或刷新页面)数据库中的另一个随机视频加载。

我知道我可以使用iframe嵌入这样做:

<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中工作。

任何指示赞赏。

[编辑:我的webhost正在运行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>

2 个答案:

答案 0 :(得分:0)

那是你正在运行的脚本吗? 最后一行似乎缺少分号。

否则看起来很好。虽然,正如Marc B所指出的,如果它只是一个,你不需要使用while循环。正如Fanis所说,你应该做错误检查。

答案 1 :(得分:0)

看起来他们不赞成使用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的本地服务器上对我有用。如果你使用的是低于5.2.9的php版本,那么构造函数的第一条注释建议使用一组不同的命令。