Soy un estudiante que usa NetBeans para crear páginas web muy básicas usando HTML, PHP y SQLite. Hasta ahora todo está bien. El problema que tengo es que las imágenes no se muestran en la página moviedetails.php. Todo lo demás, incluidos titles, ratings y description para cada entrada de la tabla, funciona bien. (Estoy recuperando filas de una tabla de base de datos). Aquí está mi código:

(Esto es muy nuevo para mí, así que si es un simple error, perdón por perder el tiempo: /)

Index.php

<!DOCTYPE html>

<html>
   <head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <?php
    $pdo = new PDO('sqlite:movies.db');             //Import SQLite database "movies.db" to a Var
    $query = $pdo->query("SELECT * FROM movie");

    while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
        //For each id number in db, echo a hyperlink containing that ID's title and 
        echo '<a href="moviedetails.php?id=' . htmlentities($row['id']) . '">' . htmlentities($row['title']) . '</a>';
        echo '<br>';
    }
    ?>
</body>



moviedetails.php

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

    <?php
    $pdo = new PDO('sqlite:movies.db');                                //Using movies.db
    $query = $pdo->prepare("SELECT * FROM movie WHERE id=:id");        //Prepare this statement
    $id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);   //GET INPUT from Variable 'id' and FILTER anything which isn't a number 
    $query->bindParam(':id', $id, PDO::PARAM_INT);                     //Bind :name 'id' to a $id variable
    $query->execute();                                                 //Execute the prepared statement
    $row = $query->fetch(PDO::FETCH_ASSOC);                            //Fetch next row of results


    //var_dump($row);
    //display title, description and rating
    echo '<h1>'.htmlentities($row['title']).'</h1>';                //Echo 'Title' from db into a heading
    echo '<a href="'.htmlentities($row['image']).'"></a>';          //Echo 'image from db into a link
    echo '<p>'.htmlentities($row['description']).'</p>';            //Echo 'description' from db to paragraph
    echo '<p>Rating: '. htmlentities($row['rating']).'</p>';         //Echo 'rating' from db to paragraph
    ?>


</body>

Aquí está mi base de datos en una imagen, ya que esta es la forma más fácil de mostrarle: http://i.cubeupload.com/TBI5Fv.png

Esta es una de las páginas web que debería mostrar un enlace. Sin embargo, solo contiene los otros campos de la tabla: http://i.cubeupload.com/1tcfsU.png

Lo extraño es que no me da ningún error, así que no sé dónde me estoy equivocando.

Espero que alguien pueda ayudar :)

0
Lewis 12 dic. 2016 a las 21:05

1 respuesta

La mejor respuesta

Su etiqueta <a> está vacía, por lo que es invisible.

echo '<a href="'.htmlentities($row['image']).'"></a>';

Deberías poner algo de contenido que se mostrará como un enlace como este:

echo '<a href="'.htmlentities($row['image']).'">THIS IS LINK TO IMAGE</a>';

Si desea mostrar la imagen en sí en lugar de un vínculo, debe usar la etiqueta <img> como esta:

echo '<img src="'.htmlentities($row['image']).'"/>';
0
Jakub Matczak 12 dic. 2016 a las 21:10
¡Gracias! Mientras tanto, me di cuenta de que estaba intentando usar la etiqueta .... Editar: la imagen parece estar vinculada, pero está rota. No estoy seguro de por qué ocurriría esto: / i.cubeupload.com/4HW5dO.png
 – 
Lewis
12 dic. 2016 a las 21:17