如何使用PHP从文件名引用向图库显示图片

时间:2012-11-12 23:24:29

标签: php mysql image photo-gallery

我必须在这里做错事。它不能像它应该的那样工作,但是它只是一个用途的简单任务,将我的./images./thumbnails文件夹中的照片显示到我的PHP Web表单中。它还没有完全完成,但我只想获得能够在我的页面上看到我显示的照片的功能。

两个文件夹中的图像名称相同,大小不同。以下是两个文件夹中的一些示例照片名称。 IMG786_3, IMG3413, IMG31

以下是对我的数据库的查询,其中它检索存储在我的数据库中的所有照片的所有标题,描述和文件名。我将它们放入一个数组中,以便我可以根据索引访问它们。

$imgQuery = "SELECT FileName, Title, Description FROM PICTURE WHERE OwnerID='$id' LIMIT 0,7";   
if($imgResult = mysqli_query($link, $imgQuery))
{
while($imgRow = mysqli_fetch_row($imgResult))
{
    $filename[] = $imgRow[0];
    $title[] = $imgRow[1];
    $description[] = $imgRow[2];
}
}

以下是应该从我拥有的两个文件夹中显示这些照片串的代码。当我点击缩略图时,假设从./images文件夹中带来完整大小的图像,文件名,描述和标题的整个索引将会改变。

print <<<photo
<body>
<span> <?php echo $error; ?> </span>
<form action='MyAlbum.php' method='post'>
    <table>
        <tr><td colspan='7' ><h2 align='center'>$name's Album</h2></td>
        </tr>
        <tr><td colspan='7' >$title[$i]</td>
        </tr>
        <tr><td colspan='5' ><img src="./images/$filename[$i]" /></td><td colspan='2'>$description[$i] </td>
        </tr>
        <tr>
            <td><img src="./thumbnails/$filename[0]" /></td> <td><img src="./thumbnails/$filename[1]" /></td> <td><img src="./thumbnails/$filename[2]" /></td> 
            <td><img src="./thumbnails/$filename[3]" /></td><td><img src="./thumbnails/$filename[4]" /></td> <td><img src="./thumbnails/$filename[5]" /></td> 
            <td><img src="./thumbnails/$filename[6]" /></td> 
        </tr>
    </table>
</form>
</body>
</html>

photo;

1 个答案:

答案 0 :(得分:0)

你的heredoc是错的。 1st - 您应该遍历文件名以获取缩略图。 第二 - 你得到的变量$ i的图像看起来像一个迭代器,但没有用于循环。

我已将heredoc修改为可用的html。你仍然需要javascript / jquery(我更喜欢)来实现你的图像替换。默认情况下,页面加载时会显示第一个图像。

<html>
<body>
<span> <?php //echo $error; ?> </span>
<form action='MyAlbum.php' method='post'>
    <table border="1">
        <tr><td colspan='7' ><h2 align='center'><?php echo $name ?>'s Album</h2></td>
        </tr>
        <tr><td colspan='7' >
            <?php echo $title[0]; ?></td>
        </tr>
        <tr>
            <td colspan='5' ><img src="./images/<?php echo $filename[0] ?>" /></td>
            <td colspan='2' ><?php echo $description[0]; ?></td>
        </tr>
        <tr>
         <?php foreach($filename as $f): ?>   
            <td><img src="./thumbnails/<?php echo $f ?>" /></td>
         <?php endforeach; ?>
        </tr>
    </table>
</form>
</body>
</html>

还有一件事。使用3个不同的阵列效率不高。 1个关联数组可以很好地完成这项工作。 Lemme知道你是否有疑问。

DINS