Mysql no muestra imagen con PHP - AYUDA-HELP ME

36 visitas 1 respuestas

Hola comunidad, tengo el siguiente problema, estoy trabajando en local con xampp Tengo el siguiente código: FUNCIONES <?php

require 'init.php';

class Funciones 
{
    //Métodos
    public function getPublicaciones()
    {
        global $pdo;

        $query = $pdo->prepare("
            SELECT *
            FROM fm
            ");
        $query->execute();

        return $query->fetchALL();
    }

    public function getCursos()
    {
        global $pdo;

        $query = $pdo->prepare("
            SELECT *
            FROM tv
            ");
        $query->execute();

        return $query->fetchALL();
    }

    public function getPublicacion($fm_id){

        global $pdo;

        $query = $pdo->prepare("

            SELECT *
            FROM fm
            WHERE fm_id = :fm_id

            ");
        $query->execute([

            'fm_id' => $fm_id

            ]);

        return $query->fetch();
    }

    public function getCurso($tv_id){

        global $pdo;

        $query = $pdo->prepare("

            SELECT *
            FROM tv
            WHERE tv_id = :tv_id

            ");
        $query->execute([

            'tv_id' => $tv_id

            ]);

        return $query->fetch();
    }

}

?>

y en el INDEX: <?php require 'php/funciones.php'; $obj = new Funciones();

//obtener registros $publicaciones = $obj->getPublicaciones(); $cursos = $obj->getCursos();

?> .... <?php foreach($publicaciones as $publicacion): ?>

            <img alt="featured project" src="php/images/<?php echo $publicacion['imagen_slider']; ?>" class="img-fullwidth">
                <h4 class="text-white mt-0 mb-0"><span class="price"><?php echo $publicacion['estado_producto']; ?></span></h4>
                </div>
                <div class="content text-left flip p-25 pt-0">
                  <h4 class="line-bottom mb-10"><?php echo $publicacion['titulo']; ?></h4>
                 <a class="btn btn-dark btn-theme-colored btn-sm text-uppercase mt-10" href="transmisores-fm.php?fm_id=<?php echo $publicacion['fm_id']; ?>">ver detalles</a>

            <?php endforeach; ?>

//ESTE PRIMER CÓDIGO SI MUESTRA LA IMAGEN DE LA RUTA EN LA BD

<?php foreach($cursos as $curso): ?>

            <div class="thumb"> <img alt="featured project" src="php/images/<?php echo $curso['imagen-slider']; ?>" class="img-fullwidth">
                <h4 class="text-white mt-0 mb-0"><span class="price"><?php echo $curso['estado_producto']; ?></span></h4>
                </div>
                <div class="content text-left flip p-25 pt-0">
                  <h4 class="line-bottom mb-10"><?php echo $curso['titulo']; ?></h4>

                 <a class="btn btn-dark btn-theme-colored btn-sm text-uppercase mt-10" href="transmisores-tv.php?tv_id=<?php echo $curso['tv_id']; ?>">ver detalles</a>
                </div>
              </div>

            </div>
            <?php endforeach; ?>

//PERO ESTE CÓDIGO MUESTRA TODO MENOS LA IMAGEN - LA RUTA ES LA MISMA

No entiendo porque no muestra la imagen de la BD, con el primer código muestra la imagen de la primer tabla llamada fm, Y del segundo código muestra todo menos la imagen.

No entiendo porque ayuda...

Respuestas

0 0

Depende de cómo se llame el campo de la imagen.

Dices que en el primer código sí te recupera la imagen de la BBDD y la enseñas, pero en el segundo no.

Posible error:

$publicacion['imagen_slider'];
$curso['imagen-slider']

La segunda usa un guión, cosa que no debes hacer al declarar un campo de una tabla en una BBDD, es más, creo que la BBDD ni te deja ponerlo así.

De todas formas, como consejo para tus futuros proyectos, ten cuidado con las imágenes en las BBDD. Las imágenes son recursos son muy pesados y además de ralentizar la búsqueda o recuperación de datos, en algún momento puedes sufrir desbordamiento de memoria de PHP. Ahora puede que no ocurra con 100 resultados, pero con 1000, lo notarás. Te lo digo por experiencia propia :)

¡Un saludo!

por desde España

Registrado desde: 16 días