【问题标题】:Displaying images stored in a MySQL Database in a styled list with php and css使用 php 和 css 在样式列表中显示存储在 MySQL 数据库中的图像
【发布时间】:2012-08-23 02:18:18
【问题描述】:

我有几个图像存储在数据库中,我试图在样式列表中显示它们。这个想法是当我从数据库中调用图像时,php代码将在样式<div>元素内生成列表......不幸的是,情况并非如此。该列表正在生成,但它没有遵循我的任何样式,并且图像没有显示。

图像在页面上显示其宽度和高度的边框,但中间缺少文件图标...当我转到数据库时,文件显然在那里,命名和所有内容。即使我在 URL 末尾输入 file_display.php?id=1,图像也会显示...

图片以jpeg格式保存在数据库中,表格中LONGBLOG数据除外

这是我获取图像并将其显示在列表中的代码:

    <div class="template_container">
    <h2>Templates</h2>  
    <ul style="margin: 0 50px;">

        <?php   

            // Grab the data 
            $sql = "select * from templates";
            $result = mysql_query($sql) or die ("Could not access DB: " . mysql_error());
            while ($row = mysql_fetch_assoc($result))
            {
                echo "<li>";
                echo "<a class=\"caption" . "href=\"cart.php?id=<?=" . $row['id'] . "&action=add>";

                echo "<img src=\"http://URL-REMOVED.com/file_display.php?id=<?=" . $row['id'] . "\" alt=\"\" /><br />";
                echo "<span>";
                echo "<big>" . $row['name'] . "<br />";
                echo $row['description'];
                echo "</span>";
                echo "</li>";

            }

        ?>
    </ul>
</div>

这是应该为列表设置样式的 css:

.template_container {
    width: 100%;
    height: auto;
    border-top: 1px solid #e8e8e8;
    margin: 75px auto 25px auto;
    padding-top: 25px;
}

.template_container h2 {
    font-family: 'Podkova', serif;
    font-size: 58px;
    line-height: 66px;
    color: #2d9dc8; font-weight: normal;
    text-transform: uppercase;
    letter-spacing: -2px; 
    text-align: center;
    margin-bottom: 50px;
}

.template_container ul li { 
    list-style-type: none; 
    display: inline; 
    text-align: center;
    zoom:1; 
    *display:inline;
}

.template_container ul { vertical-align: inherit; }
.template_container li { margin-left: 25px;}
.template_container img { 
    width: 180px;
    margin-bottom: 50px; 
    box-shadow: 0px 0px 10px #888;
    -moz-box-shadow: 0px 0px 10px #888;
    -webkit-box-shadow: 0px 0px 10px #888;
    -khtml-box-shadow: 0px 0px 10px #888;
}

a.caption { 
    position: relative !important;
}
a.caption span { 
    background: #000; 
    background: rgba(0,0,0,0.8); 
    color: white !important; 
    display: none; 
    padding: 5px 10px !important; 
    text-align: center; 
    position: absolute !important;
    bottom: 0 !important; 
    left: 0 !important; 
}
a.caption:hover {
    text-decoration: none;
}

对于那些想知道列表项中的 &lt;a class="caption"&gt;&lt;span&gt; 元素的人,我有一个 javascript 可以在悬停时显示这些元素。

更新:我发现了我的样式问题,我搞砸了,忘记关闭链接,我不小心在图片标签的末尾添加了 &lt;br /&gt;,所以列表是不是内联。

但是我仍然无法看到我的图像...仍在寻找解决方案...

【问题讨论】:

  • 请使用 PDO 或 mysqli 代替旧的 mysql 函数。

标签: php mysql css mime-types


【解决方案1】:

我认为图片 URL 生成有问题:

echo "<img src=\"http://URL-REMOVED.com/file_display.php?id=<?=" . $row['id'] . "\" alt=\"\" /><br />";

为什么需要 "

echo "<img src=\"http://URL-REMOVED.com/file_display.php?id=" . $row['id'] . " alt=\"\" /><br />";

【讨论】:

  • 谢谢你抓住这个大声笑,我什至不想把它放在那里。但是,不幸的是,删除它并没有奏效。图像仍然看不到,它们仍然没有在列表中设置样式:(
  • 好吧,我只能说 URL 有问题。 CSS 似乎对图像显示没有任何影响。或许尝试查看页面上生成的 标签?
  • 实际上,你在这点上是 100% 正确的,只是没有出现在正确的位置,哈哈。对于造成的混乱,我深表歉意。
【解决方案2】:

【讨论】:

  • 感谢您分享此内容,但这对我的情况没有帮助。
猜你喜欢
  • 2015-10-26
  • 1970-01-01
  • 2016-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 2017-07-22
  • 1970-01-01
相关资源
最近更新 更多