【问题标题】:Have Images appear from database让图像从数据库中出现
【发布时间】:2012-10-22 20:46:56
【问题描述】:

所以我的数据库中有一个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 的空框。 有什么办法可以让图片出现吗?因为我想做的是在一个漂亮的照片库中制作多张图片。

欢迎任何帮助!

【问题讨论】:

  • 回显什么?您的代码不会按原样打印任何内容。
  • mysql_fetch 返回单行数据。您将其视为返回所有行。要么构建一个数据数组,要么将你的 echo 移到 fetch 循环中。
  • @Xyon 我刚刚编辑了代码。
  • @MarcB 我如何将数据库行作为数组回显,然后在其自己的 中回显每个单独的结果?

标签: php mysql prettyphoto


【解决方案1】:

正如 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_* OR PDO。

【讨论】:

    【解决方案2】:

    我可能会尝试更多类似的东西:

    $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。如果您尽可能清楚地命名事物,那么其他一切都会变得更容易和更快。

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

    【讨论】:

    • 我试过了,它给了我同样的问题。我在屏幕上有 2 个分页,因为我有 2 个表格,一个用于用户信息的表格,另一个用于用户图像的表格。
    • 在尝试让 prettyPhoto 参与之前,看看您是否可以简单地打印一个页面上所有图像 URL 的列表。否则你将不知道问题出在你的 PHP/SQL 还是你的 JavaScript。
    猜你喜欢
    • 2018-05-07
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多