【发布时间】:2013-01-22 20:52:14
【问题描述】:
我有一个 php 脚本,它调用一系列显示如下的图像:
这是调用它们的 php 代码:
<?php
$query = "SELECT
parent_business_id,
image_url,
alt_tag,
description,
thumb_url,
business
FROM
images
ORDER BY
RAND()
LIMIT
6
";
$result = mysql_query($query, $dbc)
or die (mysql_error($dbc));
while($row = mysql_fetch_array($result)) {
$parent = $row["parent_business_id"];
$image = $row["image_url"];
$alt = $row["alt_tag"];
$description = $row["description"];
$thumb = $row["thumb_url"];
$business = $row["business"];
$mainthumb = "./images/270x270/$image.jpg";
echo
"<div class='gallery_image_container'>
<a href='business-profile.php?business_id=$parent' class='gallery_darken'><img src='$mainthumb' alt='$alt' title='$description' /></a>
</div>";
}
?>
目前我正在使用 css3 的 nth-child 为中心图像添加边距:
div.gallery_image_container:nth-child(3n+2){
margin-left:10px;
margin-right:10px;
}
我遇到的问题是这在支持 css3 但 ie 7 和 ie 8 不支持的浏览器中效果很好,我需要一个解决方案。我在想也许我可以通过在 php.ini 中添加类来做到这一点。如果是这样,我将使用哪个功能。 php 中是否有类似 nth-child 的选择器?
【问题讨论】:
-
PHP 并没有真正的 nth-child 选择器,但是您可以自己做,当您循环打印它们时,如果它是第 2 项、第 5 项等,只需添加类。
-
离题,但值得一提的是:
ORDER BY RAND()是一种极其缓慢的查询方式。它基本上必须加载整个表。这对于小表来说很好,但如果你有很多数据,ORDER BY RAND()会给你带来非常糟糕的性能问题。 -
也离题了,但绝对值得一提:PHP 中的
mysql_xxx()函数已被弃用。这意味着 PHP 正在放弃对它们的支持,并可能在未来的版本中将它们完全从语言中删除。无论如何,不管怎样,它们长期以来一直被认为是过时且不安全的。 强烈建议改用 PHP 提供的更好的 mysql API 之一,mysqli或PDO。 -
@SDC 该表相对较小,所以我不太担心性能问题。但是,如果有更好的方法,我愿意接受建议。感谢您的评论。
-
@SDC depecated 函数是一个问题。我将不得不对此进行调查。当谈到 mysql 和 php 时,我几乎是个新手。这会是一个痛苦的转变吗?
标签: php css internet-explorer css-selectors