2016-05-01 36 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是我得到一個錯誤,該服務器上找不到網址 –

相關問題