0

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

pgname | id | imageurl | username

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

我使用prettyphoto jquery 库返回图像。

我试图让与用户 pgname 关联的图像的 url 出现在我的 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>';
        }

我得到的是表格中每个 imageurl 的空框。有什么办法可以让图片出现吗?因为我想做的是在一个漂亮的照片库中制作多张图片。

欢迎任何帮助!

4

2 回答 2

0

正如 Marc 所说,您必须构建数据数组或将 echo 移动到 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_* 或 PDO。

于 2012-10-22T20:56:07.097 回答
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,即imagesQueryand imageUrl(or imageURL) 而不是imagesqueryand imageurl。如果您尽可能清楚地命名事物,那么其他一切都会变得更容易和更快。

抱歉,如果这听起来像是批评。我不是要严厉;我的意思是我所说的友好提示。

于 2012-10-22T20:57:21.160 回答