2016-05-01 41 views
0

我花了三天的时间讨论这个问题。我尝试了几个我在这个网站上找到的解决方案,但收效甚微。我想要做的是使用PHP变量在iframe中播放YouTube视频。我也试图用相同的输入运行两个MySQL查询。这是我的代码,因为它现在。在此刻,当我运行时,我得到了我想要的表格,但我仍然需要格式化它。但iframe甚至没有出现。我以前的解决方案,将拉起iframe,但内部将是一个错误,我基本上是通过sql查询到iframe。使用PHP变量作为iframe中的播放YouTube视频的来源

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "password"; 
$dbname  = "purpletrainer"; 

// Create connection 
$conn = new mysqli($servername, $username, $password); 

// Check connection 
if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
} 
//echo "Connected successfully"; 

$trainingid = $_POST["trainingid"]; 
$sql  = "SELECT * FROM purpletrainer.trainingcontent WHERE trainingid = '$trainingid';"; 
$result  = $conn->query($sql); 
if ($result->num_rows > 0) { 
     echo "<table><tr><th>Training ID</th><th>Title</th><th>Training URL</th><th>Training Quiz URL</th></tr>"; 
     // output data of each row 
     while ($row = $result->fetch_assoc()) { 
       echo "<tr><td>" . $row["trainingid"] . "</td><td>" . $row["trainingtitle"] . "</td><td>" . $row["trainingurl"] . "</td><td>" . $row["trainingquizurl"] . "</td></tr>"; 
     } 
     echo "</table>"; 
} else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
} 


$conn->close(); 
?> 
<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "password"; 
$dbname  = "purpletrainer"; 

// Create connection 
$conn = new mysqli($servername, $username, $password); 

// Check connection 
if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
} 
$videosql = "SELECT trainingurl FROM purpletrainer.trainingcontent WHERE trainingid = '$trainingid';"; 
$videoresult = $conn->query($videosql); 
if ($videoresult->num_rows > 0) { 
     while ($videourl = $videoresult->fetch_assoc()) { 

     } 
} else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
} 
$conn->close(); 
?> 

<div class="col-md-6"> 
     <iframe width="420" height="315" src= '<?php echo htmlspecialchars($videourl); ?>' frameborder="0" allowfullscreen></iframe> 
</div> 

回答

1

这是常见的做法使用变量$videourl外while循环。 (将您的iframe放入while循环中)。 旁注:fetch_assoc()将创建一个数组。它应该是$videourl['trainingurl'];

下面是一个例子:

<?php 

if ($videoresult->num_rows > 0) 
{ 
    while($videourl = $videoresult->fetch_assoc()){ 
?> 
    <div class="col-md-6"> 
    <iframe width="420" height="315" src= '<?= $videourl['trainingurl']; ?>' frameborder="0" allowfullscreen></iframe> 
    </div> 
<?php 
    } 
    } 
    else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
    } 
?> 

编辑的清晰度和未来的读者 注意,<?= $variable ?>打开标签只得到妥善因为PHP支持5.4+。当不使用此版本时,请保持使用<?php echo $variable; ?>

+0

'$ videourl'变量实际上会保留在循环外部,它在全局范围内定义,但它将包含在循环的最后一次迭代期间分配给它的值 – andrew

+0

谢谢@andrew,不知道。从来没有这样想过。相应地更新我的答案。 – NoobishPro

+0

非常感谢,这更接近我所需要的。该视频仍然没有显示,但iframe是我得到一个错误,该服务器上找不到网址 –

相关问题