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データベースへのリンクを追加したいと思います。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ブラケットにもっと必要なものがあり、それ以外はこのループの一部であってはなりません(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 に答える