Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.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
Php 显示存储在数据库中的图像_Php_Mysql_Gallery - Fatal编程技术网

Php 显示存储在数据库中的图像

Php 显示存储在数据库中的图像,php,mysql,gallery,Php,Mysql,Gallery,我正在做画廊,我需要一些帮助。我已经通过网站上传了图片到数据库中——它们存储在MySQL(名称)和名为images的文件夹中。我想要的是显示(微缩)线,并点击放大它们 我的代码所做的是显示缩影并将其链接到其他内容:/ 这是我的代码: <?php $hostname_connect= "localhost"; $database_connect= "gallery"; $username_connect= "root"; $password_connect= "root"; $connect

我正在做画廊,我需要一些帮助。我已经通过网站上传了图片到数据库中——它们存储在MySQL(名称)和名为images的文件夹中。我想要的是显示(微缩)线,并点击放大它们

我的代码所做的是显示缩影并将其链接到其他内容:/

这是我的代码:

<?php
$hostname_connect= "localhost";
$database_connect= "gallery";
$username_connect= "root";
$password_connect= "root";
$connect_solning = mysql_connect($hostname_connect, $username_connect, $password_connect) or trigger_error(mysql_error(),E_USER_ERROR);
                                @mysql_select_db($database_connect) or die (mysql_error());

$query_image = "SELECT * FROM gallery_images";

$result = mysql_query($query_image);
if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_array($result))
{
?>
<a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'">
<?php
echo '<img alt="gallery" src="images/'.$row["image"].'" class="pic-resize" alt=""></a>';
                                    }
while($row = mysql_fetch_array($result))
{
?>
<div id="light" class="white_content">
<?php
echo '<img alt="gallery" src="images/'.$row["image"].'" class="" alt=""></a>';
                                            ?>
<a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'">Close</a>
</div>
<?php
}
}
else
{
echo 'File name not found in database';
}

?> 

';
}
while($row=mysql\u fetch\u数组($result))
{
?>

您正在循环中使用此选项:

<div id="light" class="white_content">
这将为您提供它找到的第一个元素,而不是您想要放大的实际元素(除非它是第一个…)

就我个人而言,我会使用标准的lightbox解决方案,将缩略图链接到大图像(而不是
javascript:void(0)
),并在单击缩略图时使用链接的
href
属性设置大图像的源代码

编辑:html入门示例:

<?php
while($row = mysql_fetch_array($result))
{
?>
  <a href="<?php echo 'images/'.$row["image"]; ?>" onclick="return showImage(this);">
<?php
  echo '<img alt="gallery" src="images/'.$row["image"].'" class="pic-resize" alt=""></a>';
}
?>
<div id="light"><img src='' alt=''></div>

';
}
?>
现在,您只需用javascript编写
showImage()
函数即可完成实际工作:

  • 获取所单击链接的
    href
    属性
  • #light
    中的图像源设置为该值
  • 显示
    #light
    元素

在MySQL中存储二进制数据到底是什么问题?或者只是图像的路径?首先,删除锚定标记中属性和值之间的空格。@dianuj问题是图像按应有的方式显示,但当我在第一个标签上单击时,图像会放大。@Rob W我只存储图像的路径-图像在服务器上的文件夹中。但我必须手动链接它们,这会使我尝试执行的操作失败-除非您可以建议自动将它们链接在一起。@Fresz如果需要,您可以在循环中自动进行链接,但从我看到的情况来看,您使用的是相同的图像作为缩略图和大图像,因此您还可以使用单击图像的源来设置大图像的源。不管是哪种方式,你只需要一个循环,而不是一个额外的循环,就可以把你所有的大图像都放到html中。@Fresz我以为你是在做练习。如果您不是,我建议您使用许多可用的javascript lightbox插件中的任何一个。问题是将缩略图链接到大图:(我可以管理插件…我假设我的代码是double loop的一部分。@Fresz但它们看起来是一样的,所以应该是
images/。$row[“image”]“
类似于缩略图的来源。
<?php
while($row = mysql_fetch_array($result))
{
?>
  <a href="<?php echo 'images/'.$row["image"]; ?>" onclick="return showImage(this);">
<?php
  echo '<img alt="gallery" src="images/'.$row["image"].'" class="pic-resize" alt=""></a>';
}
?>
<div id="light"><img src='' alt=''></div>