表示图像表单数据库

时间:2018-08-06 14:18:11

标签: php html database

我想代表每一次按下按钮时存储在数据库中的图像。列名称为“ solution_path”。 在我的代码中,我可以在按钮外部表示图像,但是我希望在按下按钮时显示它。部分代码如下所示。我知道如何表示从数据库中获取的图像,但是在这种情况下,我不知道为什么它不起作用。你能帮助我吗? 我已经连接到数据库和所需的表。

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

$conn = new mysqli($servername, $username, $password, $dbname);
/*echo*/ $id=$_GET['id'];
$sql = "SELECT * FROM exercises where exercise_id='$id'";
$result = $conn->query($sql); /*Check connection*/
?>

<div id="centered_B" class="header">

<?php
while($id = $result->fetch_assoc())
    echo '<h1>' . $id["exercise_id"]. ". " . $id["title"] . '</h1>' . "<br>" . '<p>' . $id["text"] . '</p> <img width="603" height="auto" src="' . $id["image_path"] . '"><br><br>


    <input type="radio" name="choice" value= "1" /><img width="550" height="auto" src="' . $id["image_path_A"] . '"/>
    <input type="radio" name="choice" value= "2" /><img width="550" height="auto" src="' . $id["image_path_B"] . '"><br>
    <input type="radio" name="choice" value= "3" /><img width="550" height="auto" src="' . $id["image_path_C"] . '"><br>';


/*var_dump($id)*/
?>


 <button onclick="solutionFunction()" class="button_Solution" >Solution</button>



<div id="solution" style="display: none;">
    This is the solution.
    <img width="500" height="auto" src="<?php echo $id["solution_path"]; ?>" >

</div>



<script>
    function solutionFunction() {
        var x = document.getElementById("solution");
        if (x.style.display === "none") {
            x.style.display = "block";
        } else {
            x.style.display = "none";
        }
    }
</script>

1 个答案:

答案 0 :(得分:1)

提供我的评论作为答案,以便您用;)结束问题

如果您只处理该特定页面构建的一个结果行,则应摆脱while循环,只需将一个结果行分配给$id变量,即可在整个页面。

因此更改这一行:

while($id = $result->fetch_assoc())

只是:

$id = $result->fetch_assoc();

现在$id将在整个页面生成过程中保持不变,并且较低的$id["solution_path"]回显应该为您提供所需的解决方案图像URL字符串。


您的原始代码不起作用的原因是while的特定行为是在上一次循环迭代中“清除”分配的变量(从而导致条件变为“ false”并结束循环) )。

此外,由于您没有大括号,因此while仅控制紧接echo的下一行。然后,这意味着您对$id["solution_path"]变量的进一步回显将回显空结果。如果您已完全启用php错误报告功能,则可能还会看到有关未定义索引的警告。

希望对您有所帮助!