从数据库中显示图像

时间:2012-10-22 20:46:57

标签: php mysql prettyphoto

所以我的数据库中有一个images表,其中包含以下4列:

pgname | id | imageurl | username

用户可以将图像保存到表中,将用户页面名称添加为pgname,自动增加的id,图像的url作为imageurl,以及人员用户名。

我使用prettyphoto jquery画廊返回图像。

我试图将与用户pgname相关联的图像的网址显示在我的div的超链接中,并使用以下代码:

$imagesquery = mysql_query("SELECT * FROM `images` WHERE `pgname` = '$pgname'") or die(mysqli_error());
        while ($returnImages = mysql_fetch_assoc($imagesquery))  {
        $img = array($returnImages['imageurl']);
        }

        foreach ($img as $imageData) {
        echo'<div id="imageslide"><a href="'.$imageData.'" rel="prettyPhoto[pp_gal]"><img style="width: 100px; height: 100px;" src="'.$imageData.'" alt=""/></a></div>';
        }

我得到的是表格中每个图像的空盒子。 有没有办法让图像出现?因为我想要做的是在一个漂亮的照片库里面制作多个图像。

欢迎任何帮助!

2 个答案:

答案 0 :(得分:0)

正如Marc所说,你必须建立数据数组或将你的回声移动到fetch循环中,尝试以下

$imagesquery = mysql_query("SELECT * FROM `images` WHERE `pgname` = '$pgname'") or die(mysqli_error());
while ($returnImages = mysql_fetch_assoc($imagesquery))  {
       echo'<div id="imageslide"><a href="'.$returnImages['imageurl'].'" rel="prettyPhoto[pp_gal]"><img style="width: 100px; height: 100px;" src="'.$returnImages['imageurl'].'" alt=""/>'.$returnImages['pgname'].'</a></div>';
}

请不要使用mysql_ *函数,因为它已被php.net弃用,您可以使用mysqli_ * OR PDO。

答案 1 :(得分:0)

我可能会尝试更像这样的事情:

$imagesQuery = mysql_query("SELECT * FROM `images` WHERE `pgname` = '$pgname'") or die(mysqli_error());

while ($row = mysql_fetch_assoc($imagesQuery))  {
    echo '<div id="imageslide"><a href="'.$row['imageurl'].'" rel="prettyPhoto[pp_gal]"><img style="width: 100px; height: 100px;" src="'.$row['imageurl'].'" alt=""/></a></div>';
}

另外,我认为重要的是要考虑一下你的名字。为什么你会使用名称$imageData来表示真正的URL?为什么将名称$img赋予真正的数组?如果您打算使用camelCase,请在任何地方使用camelCase,即imagesQueryimageUrl(或imageURL),而不是imagesqueryimageurl。如果你尽可能清楚地命名,那么其他一切都会更容易,更快。

对不起,如果这听起来像批评。我不是要苛刻;我的意思是我所说的友好提示。