es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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>
Tags:  , , , ,

Answer

  1. Avatar for 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 donde VID=id y eliminar la condición id=94. Esto obtendrá todas las filas que tengan el mismo VID que el id especificado. Luego, en tu código PHP, puedes recorrer el conjunto de resultados y mostrar cada imagen utilizando la columna imgV. Aquí tienes una versión modificada del código:

    <body>
    
    <?php
        # archivo de conexión a la base de datos
        require_once('conect.php');
        # obtención de las imágenes
        $id = 94; // valor de ejemplo para VID
        $sql1  = "SELECT * FROM villa WHERE VID=:id";
        $stmt = $pdo->prepare($sql1);
        $stmt->bindParam(':id', $id);
        $stmt->execute();
        $images = $stmt->fetchAll();
        if ($stmt->rowCount() > 0) { ?>
            <div class="gallery">
                <h4>Todas las imágenes</h4>
                <?php foreach ($images as $image) { ?>
                    <img src="img/<?php echo $image['imgV']; ?>">
                <?php } ?>
            </div>
        <?php } ?>
    </body>
    

    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étodo bindParam(). Luego, estamos obteniendo todas las filas que tengan el mismo VID que el id especificado utilizando el método fetchAll(). Finalmente, estamos recorriendo el conjunto de resultados y mostrando cada imagen utilizando la columna imgV.

Comments are closed.