【问题标题】:php image galleryphp 图片库
【发布时间】:2011-06-22 21:46:13
【问题描述】:

我已经设置了一个新的图像库,其中图像存储在服务器上的 /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 不是很熟练(正如您从我的代码中看到的那样!),因此希望在将此类循环构建到此脚本中以填充的任何帮助和指导基于文件夹中所有图像的图库。

谢谢!!

京东

【问题讨论】:

  • phpjabbers.com/ask91-read-files-name-in-folder-using-php.html - Arian Acosta 有一个 scipt。请记住,虽然您不会以这种方式获得 alt 属性的描述或有意义的字符串。我认为数据库设置更好,您只需要确保文件夹中存在所有图像。但我认为这值得一试。

标签: php mysql image loops galleria


【解决方案1】:

对于像这样的简单查询,您可以遍历整个表并在一个 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>
...

您可以在 while 循环中混合您需要的任何 div、span 和其他字段(例如 $row['desc']),例如。

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>

希望对您有所帮助!

【讨论】:

    【解决方案2】:

    您正在通过 mysql_close() 关闭 MySQL 连接,因此这将不起作用。您要执行的步骤是:

    mysql_connect
    mysql_select_db
    mysql_query (or multiple queries, if placement matters)
    mysql_close
    

    【讨论】:

    • 喜欢这个地方 - 这么多专家愿意提供帮助!我还有一个问题 - 是否可以在此循环中调整图像大小。基本上它们都有不同的宽度,但我想让高度恒定为 450px,不管原始大小如何......再次,非常感谢任何帮助!谢谢
    【解决方案3】:

    您不需要一次又一次地执行查询,只需执行一次,当在 while 循环中获取 thr 记录时,使用 if(如果需要)根据您的要求放置您的 div。我正在向您展示我最近使用的代码示例。

    <?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>";
    }
    }
    
    ?>              
    

    我希望它对你有用..只是相应地做了。

    谢谢
    拉杰什

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      • 1970-01-01
      • 2015-05-27
      相关资源
      最近更新 更多