2013-07-03 2 views
1

Я пытаюсь написать программу фотоальбомов в простой PHP, но я хочу сделать ее немного более продвинутой, чем раньше.Каталогизация по годам в mysql и 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>"; 
} 
} ?> 

Как вы бы поняли, что это на самом деле плохо иметь два, пока петли в один, так что я хочу сделать это по-другому. Я хочу узнать, как это сделать лучше. Дело в том, что я не знаю названия для этого, поэтому трудно искать по этому вопросу. Кто-нибудь может передать мне фрагмент кода, источник или что-то, что поможет мне в пути?

Большое вам спасибо.

ответ

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

Это именно то, что я искал! Большое спасибо! – KarelSchapie

+0

Рад, что я мог помочь. – Sean

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

Что бы неправильно? Теперь ваш код может создавать альбом более одного раза, если в альбоме много альбомов в год.

+0

Если я хотел бы сделать это так, это будет означать, что покажет год альбома после того, как перед каждым названием альбома. Дело в том, что в настоящее время есть только два года, заполненные более чем 10 альбомами в год. Ответ Шона выполнил эту работу, но спасибо за вашу помощь! – KarelSchapie

Смежные вопросы