1

我正在尝试用简单的 PHP 编写相册程序,但我想让它比以前更高级一些。

通常我是这样写的:

<?php $query = mysql_query("SELECT year FROM photo");
while($record = mysql_fetch_object($query)) {
echo $record->year."<br>";
$query2 = mysql_query("SELECT albumName, url FROM photo WHERE year = '".$year."'");
while($album = mysql_fetch_object($query2)){
echo "<a href=\"".$album->url."\">".$albumName."</a><br>";
}
} ?>

正如您所理解的那样,将两个 while 循环合二为一真的很糟糕,所以我想以不同的方式来做。我想学习如何更好地做到这一点。问题是,我不知道这个名字,所以很难搜索这个主题。有没有人能给我一段代码、一个源代码或其他东西让我上路?

太感谢了。

4

2 回答 2

1

你可以做

<?php 
  $year = ''; // create a generic variable that will hold the album year
  $query = mysql_query("SELECT albumName, url, year FROM photo ORDER BY year"); // Sort by year
  while($album = mysql_fetch_object($query)) {
      if($album->year != $year){ // check if $album->year is the same as the $year value
        echo $album->year."<br>";  // if not the same echo the year
      }
      $year = $album->year;  // set the $year value to the $album->year
      echo "<a href=\"".$album->url."\">".$album->albumName."</a><br>";
  }
?>
于 2013-07-03T02:40:05.853 回答
0

如果你这样做怎么办:

<?php $query = mysql_query("SELECT albumName, url, year FROM photo");
    while($record = mysql_fetch_object($query)) {
       echo $record->year."<br>";
       echo "<a href=\"".$record->url."\">".$albumName."</a><br>";
    }    
 ?>

会有什么问题?现在,如果每年有很多专辑,您的代码可能会多次生成专辑。

于 2013-07-03T02:34:27.363 回答