Ich habe den besseren Teil von drei Tagen für dieses Problem ausgegeben. Ich habe mehrere Lösungen ausprobiert, die ich auf dieser Seite gefunden habe, aber mit wenig Erfolg. Ich versuche eine PHP-Variable zu verwenden, um ein Youtube-Video in einem Iframe abzuspielen. Ich versuche auch, zwei MySQL-Abfragen mit der gleichen Eingabe auszuführen. Hier ist mein Code, wie er gerade sitzt. In diesem Moment, wenn es läuft, bekomme ich den Tisch, den ich will, obwohl ich ihn noch formatieren muss. Aber der Iframe taucht nicht einmal auf. Eine vorherige Lösung, die ich ausprobiert habe, würde den iframe hochziehen, aber innen wäre ein Fehler, bei dem ich im Grunde die sql-Abfrage an den iframe übergeben würde.Verwenden Sie eine PHP-Variable als Quelle in einem iframe, um ein Youtube-Video zu spielen
<?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>
Die '$ videourl'-Variable würde tatsächlich außerhalb der Schleife bestehen, sie ist im globalen Gültigkeitsbereich definiert, enthält jedoch den Wert, der ihr während der letzten Iteration der Schleife zugewiesen wurde – andrew
Danke @andrew, wusste das nicht. Ich habe nie darüber nachgedacht. Meine Antwort wurde entsprechend aktualisiert. – NoobishPro
Vielen Dank, das ist viel näher an dem, was ich brauche. Das Video wird immer noch nicht angezeigt, aber der iFrame ist der Fehler, dass die URL nicht auf dem Server gefunden wurde. –