我有一个名为'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>
答案 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版本,那么构造函数的第一条注释建议使用一组不同的命令。