Галерея изображений php - PullRequest
0 голосов
/ 23 июня 2011

Я установил новую галерею изображений, где изображения хранятся на сервере в папке / images /, а соответствующие данные хранятся в базе данных mysql (заголовок, описание, imagesrc).

Однако я пытаюсь вернуть все изображения, хранящиеся в папке на сервере, без необходимости перечислять их в формате HTML. У меня есть php, возвращающий правильные поля и корректно заполняющий галерею, но когда новое изображение добавляется в библиотеку или обновляется одно из исходных изображений, то оно, очевидно, не будет тянуть на моем сайте.

Мой код:

<div id="galleria"><!-- Begin Galleria -->
        <div>
                <a href="<?php mysql_select_db("dbname", $con);

$result = mysql_query("SELECT * FROM images WHERE id='1'");

while($row = mysql_fetch_array($result))
  {
  echo $row['imagesrc'];
  }

mysql_close($con);
?>">
                <img src="<?php mysql_select_db("dbname", $con);

$result = mysql_query("SELECT * FROM images WHERE id='1'");

while($row = mysql_fetch_array($result))
  {
  echo $row['imagesrc'];
  }

mysql_close($con);
?>" alt='' title='' />
        </a>
        <strong><?php mysql_select_db("dbname", $con);

$result = mysql_query("SELECT * FROM images WHERE id='1'");

while($row = mysql_fetch_array($result))
  {
  echo $row['title'];
  }

mysql_close($con);
?></strong>
        <span><?php mysql_select_db("dbname", $con);

$result = mysql_query("SELECT * FROM images WHERE id='1'");

while($row = mysql_fetch_array($result))
  {
  echo $row['desc'];
  }

mysql_close($con);
?></span>
        </div>
        <div>
                <a href="<?php mysql_select_db("dbname", $con);

$result = mysql_query("SELECT * FROM images WHERE id='1'");

while($row = mysql_fetch_array($result))
  {
  echo $row['imagesrc'];
  }

mysql_close($con);
?>">
                <img src="<?php mysql_select_db("dbname", $con);

$result = mysql_query("SELECT * FROM images WHERE id='1'");

while($row = mysql_fetch_array($result))
  {
  echo $row['imagesrc'];
  }

mysql_close($con);
?>" alt='' title='' />
        </a>
        <strong><?php mysql_select_db("dbname", $con);

$result = mysql_query("SELECT * FROM images WHERE id='1'");

while($row = mysql_fetch_array($result))
  {
  echo $row['title'];
  }

mysql_close($con);
?></strong>
        <span><?php mysql_select_db("dbname", $con);

$result = mysql_query("SELECT * FROM images WHERE id='1'");

while($row = mysql_fetch_array($result))
  {
  echo $row['desc'];
  }

mysql_close($con);
?></span>
        </div>
        <div>

Каков наилучший способ получения этой информации в цикле - я не очень разбираюсь в php (как вы можете видеть из моего кода!), Поэтому буду признателен за любую помощь и руководство по созданию такого цикла в этом скрипте для заполнения галерея на основе всех изображений, которые находятся в папке.

спасибо !!

JD

Ответы [ 3 ]

0 голосов
/ 23 июня 2011

Вы закрываете соединение MySQL через mysql_close (), поэтому это не будет работать.Шаги, которые вы хотите выполнить:

mysql_connect
mysql_select_db
mysql_query (or multiple queries, if placement matters)
mysql_close
0 голосов
/ 23 июня 2011

Для такого простого запроса, как этот, вы можете просто перебрать всю таблицу и заполнить свою галерею в одном цикле while, например:

<?php

mysql_select_db("dbname", $con);

$result = mysql_query("SELECT * FROM images");

while($row = mysql_fetch_array($result))
{
    echo '<a href="' . $row['imagesrc'] . '">' . $row['title'] . '</a>';
}

mysql_close($con);
?>

Который печатает:

<a href="imagesrc1">Imagetitle1</a>
<a href="imagesrc2">Imagetitle2</a>
<a href="imagesrc3">Imagetitle3</a>
...

И вы можете смешивать любые div-ы, интервалы и другие поля (например, $ row ['desc']), которые вам нужны внутри цикла while, например.

while($row = mysql_fetch_array($result))
{
    echo '<div>';
    echo '<a href="' . $row['imagesrc'] . '">';
    echo '<img src="' . $row['imagesrc'] . '" />';
    echo '</a>';
    echo '<strong>' . $row['title'] . '</strong>';
    echo '<span>' . $row['desc'] . '</span>';
    echo '</div>';
}

, который будет печатать:

<div>
    <a href="imagesrc1"><img src="imagesrc1" /></a>
    <strong>imagetitle1</strong>
    <span>desc1</span>
</div>
<div>
    <a href="imagesrc2"><img src="imagesrc2" /></a>
    <strong>imagetitle2</strong>
    <span>desc2</span>
</div>
<div>
    <a href="imagesrc3"><img src="imagesrc3" /></a>
    <strong>imagetitle3</strong>
    <span>desc3</span>
</div>

Надеюсь, это поможет!

0 голосов
/ 23 июня 2011

вам не нужно выполнять запрос снова и снова, просто выполните его один раз, и когда в цикл while извлекаются записи, поместите ваш div в соответствии с вашим требованием, используя if (если требуется). Я показываю вам пример кода, который я недавно использовал.

<?php
$conn=mysqli_connect(DBHOST,DBUSER,"",DB);
$query1="select dev_image,dev_name from developers";
$result=mysqli_query($conn,$query1);
$cnt=0;
while($row=mysqli_fetch_array($result))
    //$dev_name=row['dev_name'];
{               
   $dev_image=$row['dev_image'];
   $dev_name=$row['dev_name'];
    if($cnt%4==0) {
    echo "<div class=\"project_main\">";
}
if($cnt%4==0) { 
        echo "<div class=\"project_img_main\">";
        echo "<div class=\"project_img1\">";
        echo "<img src=\"$dev_image\" alt=\"\" title=\"Project-1\" border=\"none\" />";
        echo "</div>";
        echo "<div class=\"project_img_name\">";
        echo "<p align=\"center\" class=\"txt1\">".$dev_name."</p>";
        echo "</div>";
    echo "</div>";
} else {
        echo "<div class=\"project_img_main1\">";
        echo "<div class=\"project_img1\">";
        echo "<img src=\"$dev_image\" alt=\"\" title=\"Project-1\" border=\"none\" />";
    echo "</div>";
    echo "<div class=\"project_img_name\">";
        echo "<p align=\"center\" class=\"txt1\">".$dev_name."</p>";
    echo "</div>";
        echo "</div>";
}

$cnt++;
if($cnt%4==0) {
    echo "</div>";
}
}

?>              

Я надеюсь, что это будет полезно для вас ... только что сделал это соответственно.

Спасибо
Раджеш

...