Cómo se puede mostrar una imagen desde una base de datos
Tengo más de una imagen guardada en la base de datos que tiene el mismo VID, necesito ayuda para mostrar todas las imágenes dependiendo de la columna VID cuando VID == id
, esta es mi función que solo muestra la primera imagen.
<body>
<?php
# archivo de conexión a la base de datos
require_once('conect.php');
# obteniendo las imágenes
$sql1 = "SELECT * FROM villa where id=94; ";
$stmt = $pdo->prepare($sql1);
$stmt->execute();
$images = $stmt->fetchAll();
$num_of_row = $stmt->rowCount();
if ($stmt->rowCount() > 0) { ?>
<div class="gallery">
<h4>Todas las imágenes</h4>
<?php foreach ($images as $image) {
echo $num_of_row;
for ( $i=0;$stmt->rowCount() >$i;$i++)
{
if ($image['id'] === $image['VID']){
echo $image['id'];
?>
<img src="img/<?php echo ($image['imgV']);?>">
<?php }
}
}?>
</div>
<?php } ?>
</body>
davy.ai
Para mostrar todas las imágenes dependiendo de la columna VID cuando
VID==id
, debes modificar la consulta SQL para seleccionar todas las filas dondeVID=id
y eliminar la condiciónid=94
. Esto obtendrá todas las filas que tengan el mismoVID
que elid
especificado. Luego, en tu código PHP, puedes recorrer el conjunto de resultados y mostrar cada imagen utilizando la columnaimgV
. Aquí tienes una versión modificada del código:En este código, estamos utilizando una consulta parametrizada con un marcador de posición
:id
para evitar ataques de inyección SQL. Estamos vinculando la variable$id
al marcador de posición utilizando el métodobindParam()
. Luego, estamos obteniendo todas las filas que tengan el mismoVID
que elid
especificado utilizando el métodofetchAll()
. Finalmente, estamos recorriendo el conjunto de resultados y mostrando cada imagen utilizando la columnaimgV
.