Langt indlæg følger...:
På siden her
http://www.hum.au.dk/engelsk/gallery/people.php har jeg
lavet et billedgalleri ud fra en database.
I en tidligere tråd fik jeg svar på, hvordan jeg fik mit
databaseudtræk delt op, så jeg kunne lave en tabel med vandrette
rækker af fire billeder (TAK!), og så rodede jeg mig selv frem til en
løsning, som sætter en lodret sort streg efter de første tre billeder,
men IKKE efter det fjerde.
Problemet er nu, at hvis den nederste række i billedgalleriet
indeholder præcis tre billeder, så bliver det sidste billede gentaget,
så der står fire billeder! Problemet kan ikke ses nu, da antallet af
billeder tilfældigvis er deleligt med 4, men hvis jeg fjernede en
person fra databasen, ville den nederste række altså stadigvæk
indeholde fire billeder...!
Koden til formateringen af udtrækket er her:
$sql = "SELECT first_name, last_name, title, engxxx FROM gallery";
$result = mysql_query($sql) or die(mysql_error());
$num_rows = mysql_num_rows($result);
$i = 0;
echo "<tr>";
while($row = mysql_fetch_array($result)) {
@extract($row);
//Træk tre billeder ud og lav en lodret sort streg (black.gif) efter
echo "<td valign=top align=center width=24% bordercolor=#000000>
<br>
<a href=$engxxx/><img src=$engxxx/foto.jpg alt=\"$first_name
$last_name\" width=128 height=192 border=1></a>
<br><br>
<strong>$first_name $last_name</strong>
<br>
$title
<br><br>
</td>
<td valign=top width=1% height=100% rowspan=2>
<img src=black.gif alt=\"\" width=1 height=300 border=0>
</td>";
$i++;
//Tjek om der er hevet et antal rækker ud, der er deleligt med 3 og
hiv endnu en række ud hvis det er tilfældet, men sæt IKKE en sort
streg efter
if($i % 3 == 0) {
$row = mysql_fetch_array($result);
@extract($row);
echo "
<td valign=top align=center width=24% bordercolor=#000000>
<br>
<a href=.$engxxx/><img src=$engxxx/foto.jpg alt=\"$first_name
$last_name\" width=128 height=192 border=1></a>
<br><br>
<strong>$first_name $last_name</strong>
<br>
$title
<br><br>
</td>
<td width=1%> </td>
//
<tr align=center valign=middle>
<td colspan=8 width=100% height=35>
<img src=black.gif alt=\"\" width=100% height=1></td></tr>";
}
}
Problemet er så vidt jeg kan se, at hvis billede nr. 3 i den sidste
række også er den sidste række i tabellen, så er if-sætningen
selvfølgelig opfyldt, men der er ikke flere rækker at trække ud, så
den sidste række bliver trukket ud igen.
Derfor: Hvordan får jeg indarbejdet i min if-sætning at det fjerde
billede KUN skal skrives ud hvis det tredje billede ikke er det sidste
i tabellen? Simpelt?
PFT,
Mikl