Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql如何使用PHP检索和显示照片_Php_Mysql_File_Variables - Fatal编程技术网

MySql如何使用PHP检索和显示照片

MySql如何使用PHP检索和显示照片,php,mysql,file,variables,Php,Mysql,File,Variables,我有一个PHP网站,在那里我在本地上传了10张图片。图片保存在/images文件夹中,并重新采样到/thumbnails文件夹中。我使用此查询从数据库中提取7个照片文件名 $imgQuery = "SELECT FileName, Title, Description FROM PICTURE WHERE OwnerID='$id' LIMIT 0,7"; 数据库保存图片的PictureID(PK)、OwnerID(UNQ,我的id是2)、FileName(存储文件名)和Title,以及图片的

我有一个PHP网站,在那里我在本地上传了10张图片。图片保存在
/images
文件夹中,并重新采样到
/thumbnails
文件夹中。我使用此查询从数据库中提取7个照片文件名

$imgQuery = "SELECT FileName, Title, Description FROM PICTURE WHERE OwnerID='$id' LIMIT 0,7";
数据库保存图片的
PictureID
(PK)、
OwnerID
(UNQ,我的id是2)、
FileName
(存储文件名)和
Title
,以及图片的
Description
。我使用这种方法将7个照片文件名、标题和描述传输到一个数组中。但是如何从
/thumbnails
文件夹中提取它们,并将它们显示在我的PHP页面上呢

if($imgResult = mysqli_query($link, $imgQuery))
{
 while($imgRow = mysqli_fetch_row($imgResult))
 {

    $filename[] = $imgRow[0];
    $title[] = $imgRow[1];
    $description[] = $imgRow[2];
 }
}
这里是我在主体中显示缩略图
t1
。我想知道如何将数据库检索到的文件分配给这些变量。描述将根据我使用的名称进行更改

$num = count($filename);
while($i < $num)
{
$i = 0;
print <<<photo
<body>
<form action='MyAlbum.php' method='post'>
    <table>
        <tr><td colspan='7' ><h2 align='center'><?php echo $name;?>'s Album</h2></td>
        </tr>
        <tr><td colspan='7' ><?php echo $title[$i];?></td>
        </tr>
        <tr><td colspan='5' ><?php echo $filename[$i]; ?></td><td colspan='2'><?php echo $description[$i];?> </td>
        </tr>
        <tr>
            <td><?php  echo $filename[0];?></td> <td><?php  echo $filename[1];?></td> <td><?php echo $filename[2];?></td> 
            <td><?php echo $filename[3]; ?></td><td><?php echo $filename[4]; ?></td> <td><?php echo $filename[5]; ?></td> 
            <td><?php echo $filename[6]; ?></td> 
        </tr>
    </table>
</form>
$i++;
</body>
</html>

photo;
 }
$num=count($filename);
而($i<$num)
{
$i=0;
打印你能做什么

<img src="<?php echo $filePath;?>" alt="some_text">
“alt=”一些文本“>

只需确保$filePath的变量是文件夹中实际图像的url,这取决于两件您没有说的事情:以完全分辨率保存在“文件名”中的文件名,在
缩略图中指定的名称,
文件名
是否包含完整路径,或者仅包含“裸路径”“文件名

// If
// FileName = "/images/LenaSjooblom.jpg", thumbnail is "./thumbnails/LenaSjooblom.jpg"
// Then
$Thumbnail = './thumbnails/' . basename($FileName);

// If
// FileName = "LenaSjooblom.jpg", thumbnail is "./thumbnails/LenaSjooblom.jpg"
// Then
$Thumbnail = './thumbnails/' . $FileName;

// If
// FileName = "/images/LenaSjooblom.jpg", thumbnail is "./thumbnails/12.jpg"
// Then
$Thumbnail = './thumbnails/' . $PictureID . '.jpg';
您将上面的代码放入同一个循环中,例如:

$filename[] = $imgRow[0];
$title[] = $imgRow[1];
$description[] = $imgRow[2];

// ADDED THUMBNAIL - hypothesis 1
$thumbnail[] = "./thumbnails/".basename($imgRow[0]);
并且可以显示

<img src="$thumbnail[$i]" />

更新 如果您的缩略图是文件名的副本,那么您不需要其他任何东西-您只需更改HTML,然后添加:

<img src="./thumbnails/$filename[$i]" />


它将指示浏览器从缩略图目录中获取与图像同名的文件名(如果一开始不起作用,请检查路径;必要时,请使用绝对路径,如“
/thumbnails/$filename[$i]
”)你需要
OwnerID=?
然后调用
bind_param
来指定中的值。你所做的是极其鲁莽的,最终会给你带来严重的麻烦。如果我使用它,那么我将不得不扫描我的
/缩略图
目录,并搜索与我的select q相同的文件名
$filenames
这是我最后的办法,而且非常复杂。只需将文件路径保存在数据库中。“数据库中的文件名只是严格意义上的文件名。
/images
文件夹中的文件名与
/thumbnails
文件夹中的文件名相同。这很方便!更新了答案。感谢我以前将循环放在错误的位置。所以现在应该可以使用了。”。