Me gustaría representar una imagen almacenada en una base de datos cada vez que presiono un botón. El nombre de la columna es "solution_path". En mi código puedo representar la imagen fuera del botón, pero me gustaría que aparezca cuando presiono el botón. Parte del código se muestra a continuación. Sé cómo representar imágenes tomadas de la base de datos, pero en este caso, no sé por qué no funciona. ¿Me puedes ayudar? Ya estoy conectado a la base de datos y a la tabla que necesito.
<?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>
Dando mi comentario como respuesta para que cierre su pregunta con;)
Si solo está tratando con una fila de resultados para esa creación de página específica, debe deshacerse del while
ciclo y simplemente asignar la fila de resultados a su $id
variable, para usarla en toda la página.
Así que cambia esta línea:
while($id = $result->fetch_assoc())
Para sólo:
$id = $result->fetch_assoc();
Ahora $id
persistirá durante la generación de la página, y su eco inferior de $id["solution_path"]
debería presentarle la cadena de URL de imagen de solución que necesita.
La razón por la que su código original no funcionaba es que while
tiene el comportamiento específico de 'borrar' la variable asignada en la última iteración del ciclo (lo que hace que la condición se vuelva 'falsa' y finalice el ciclo).
Además, dado que no tenía llaves, while
solo controlaba la echo
línea siguiente inmediata . Esto significaba que el eco adicional que tenía para la $id["solution_path"]
variable se habría hecho eco de un resultado nulo. Si tenía los informes de errores de php completamente habilitados, es posible que también haya visto una advertencia sobre el índice no definido.
¡Espero que eso te ayude!
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras