Jake wrote the original guide.php script that generates most of the pages on the web site. We are trying to make some changes/upgrades to it.
When it finds succeeding photo entries in the database with the same caption field, it groups them together. We cannot parse where it gets the extra filenames for the entries with the same captions. Was wondering if any of our more code-savvy members could take a look and figure it out.
$numentries = mysql_num_rows($photodata);
for($i = 0, $k = 0; $i < $numentries; $i++) {
$filename = mysql_result($photodata, $i, "filename");
$caption = mysql_result($photodata, $i, "caption");
$suborder = mysql_result($photodata, $i, "suborder");
$sepstyle = mysql_result($photodata, $i, "sepstyle");
if(!($sepstyle & 1)) {
echo "\n" . '<table class="guidecontent">' . "\n" . '<tr>' . "\n";
}
if(strlen($filename) > 0) {
# picture entry
$longentry = 1;
$photocredit = '';
$pdates = array();
for($j = $i; $j < $numentries; $j++) {
if($caption != mysql_result($photodata, $j, "caption")) { break; }
$filename = mysql_result($photodata, $j, "filename");
$datetaken = mysql_result($photodata, $j, "datetaken");
if(strlen($datetaken) > 0) {
switch($j - $i) {
case 0 : {$photocredit .= 'First'; break; }
case 1 : {$photocredit .= 'Second'; break; }
case 2 : {$photocredit .= 'Third'; break; }
case 3 : {$photocredit .= 'Fourth'; break; }
case 4 : {$photocredit .= 'Fifth'; break; }
case 5 : {$photocredit .= 'Sixth'; break; }
}
$photocredit .= ' photo taken ';
$pdate = date("m/d/y", strtotime($datetaken)) . '. ';
$photocredit .= $pdate;
$cphoto = 'Photos taken ' . $pdate;
array_push($pdates, $pdate);
}
for($m = 0; $m < count($mainfolderarray); $m++) {
$path = $mainfolderarray[$m] . '/'. $filename;
$thbpath = $mainfolderarray[$m] . '/thb/'. $filename;
if(file_exists($path)) { break; }
}
echo '<td><a href="' . $path . '" class="fancybox-buttons" data-fancybox-group="button" title="' . strip_tags($caption . ' Photo taken ' . $pdate, '<p>') . '"><img src="' . $thbpath . '" title=" "></a>';
# delete this if you don't want suborder displayed
# echo $suborder;
echo '</td>' . "\n";
if(($j - $i) == 2) {
$longentry = 3;
}
if((($j - $i) % 4) == 3) {
$longentry = 4;
echo '</tr>' . "\n" . '<tr>';
}
} # for $j
if(($j - $i) == 1) {
$photocredit = str_replace("First photo", "Photo", $photocredit);
}
else {
$photocredit = (sizeof(array_unique($pdates)) == 1) ? $cphoto : str_replace("First photo", "Photo", $photocredit);
}
$pdates = array();
if($longentry > 1) {
echo '</tr>' . "\n" . '<tr>' . "\n";
}
$i = $j - 1;
echo '<td colspan=' . $longentry . '>' . $caption . ' ' . $photocredit . '</td>' . "\n";
$k++;
if($k == 7) {
My guess would be these lines, where it has a second loop in the photos and breaks if it finds one with a different caption:
for($j = $i; $j < $numentries; $j++) {
if($caption != mysql_result($photodata, $j, "caption")) { break; }
$filename = mysql_result($photodata, $j, "filename");
$datetaken = mysql_result($photodata, $j, "datetaken")
Thanks for the feedback Valerie.
Matt was able to figure out the code question yesterday, so we're now able to move forward.