0

我正在fancybox 中创建一个图片库,但我正在尝试自动上传图片。

Fancybox 画廊是<a>标签的集合,但<a>列出的第一个标签也有一个<img>标签,用于提供打开的缩略图,如下所示:

<a href="image1.jpg"><img src="image1thumb.jpg"></a>
<a href="image2.jpg"></a>
<a href="image3.jpg"></a>

目前,我必须为<a>我上传的每张新图片手动添加标签,这很乏味。我宁愿将链接添加到 mySQL 数据库,然后由一段 PHP 获取。

用简单的英语,代码将如下所示:

对于最后上传的文件,仅显示<a href.......><img src=.......></a>,然后对所有其他图像显示<a href........></a>

我已经有了最后一个上传文件的代码,显示为 $lastupload,但我正在为 foreach 循环而苦苦挣扎。到目前为止,我有:

foreach ($lastupload) {
echo '<a class="fancybox" rel="'.$r["rel"].'" href="'.$r["imagelink"].'" title="'.$r["comment"].'"><img src="thumb.jpg"></a>';
        }
else {
echo '<a class="fancybox" rel="'.$r["rel"].'" href="'.$r["imagelink"].'" title="'.$r["comment"].'"></a>
      }

现在,我知道这段代码基本上没用了。我知道我在最初的 foreach 括号中需要更多内容,并且 else 不应该是这个循环的一部分(它应该是 foreach/ifelse),但我不知道如何进一步进行。我看过的所有示例都介绍了我不确定是否适合我正在尝试做的计数。另外,到目前为止,我看过的示例都没有显示如何从 mySQL 数据库生成链接列表。

您可以提供的任何帮助都会有很长的路要走。

谢谢

4

3 回答 3

0

你有没有看过foreach()循环实际上是如何工作的?您不需要计算此特定循环。或者您可以循环直到结果结束(见下文)。

http://php.net/manual/en/control-structures.foreach.php

至于从您的数据库中提取链接,请查看mysqli_fetch_assoc(). 有一些while()循环示例可以在您的查询中运行。

http://php.net/manual/en/mysqli-result.fetch-assoc.php

查看 PHP.net 手册中的上述示例,这是一个非常好的信息来源。

于 2012-09-27T19:48:30.890 回答
0

我不确定我是否完全理解你的问题。我不知道您的示例中的 $r 是什么,但据我所知,您想做这样的事情:

$i = 0;
foreach ($r as $row) {
  if ($i == 0) {
    echo '<a class="fancybox" rel="'.$row["rel"].'" href="'.$row["imagelink"].'" title="'.$row["comment"].'"><img src="'.$lastupload.'"></a>';
  }
  else {
    echo '<a class="fancybox" rel="'.$row["rel"].'" href="'.$row["imagelink"].'" title="'.$row["comment"].'"></a>
  }
  $i++;
}
于 2012-09-27T19:49:15.943 回答
0

答案是不要寻找最后上传的文件,只需区别对待查询的第一个结果。

这是我得到的完整代码:

<?php
  $foo_query->setFetchMode(PDO::FETCH_ASSOC);
  $is_first=false;
  while($r=$foo_query->fetch()) {
    if($is_first) {
      echo '<a...blah blah blah><img src="thumb.jpg"></a>';
    } else {
      echo '<a...more blah></a>';
    }
  } 
?>
于 2012-10-03T16:43:53.433 回答