foto album - klein probleem
Ik heb onderstaande script zodat mijn foto's mooi per acht in een rij staan. Maar nu zit ik met het probleem dat indien er bvb 15 foto's zijn hij twee rijen toont met in de eerste rij perfect 8 kleine thumbnails en in de tweede rij 7 thumbnails + 1 thumbnail met rood kruis omdat ik geen 16 maar 15 foto's heb. Wie kan me helpen!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?
//-- maak eerst de connectie met de database!
$user = "***";
$pass = "***";
$host = "***";
$dbdb = "***";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
$resultaten = mysql_query("SELECT * FROM `album` WHERE `soort` = 'project'");
$aantalFotos = mysql_num_rows($resultaten);
echo "<table width=\"475\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
for($i=0;$i<$aantalFotos;$i+=8){
echo "<tr>";
$bKolomWisselaar = true;
for($j=0;$j<8;$j++){
$fotoNaam=mysql_result($resultaten,$i+$j,"foto");
$id=mysql_result($resultaten,$i+$j,"id");
echo "<td><a href=\"foto.php?id=$id\"><img src='".$fotoNaam."' border=0></a></td>";
if($j<(8-1)){
if($bKolomWisselaar){
echo "<td width='10'> </td>";
$bKolomWisselaar = false;
}
else{
echo "<td width='45'> </td>";
$bKolomWisselaar = true;
}
}
}
echo "</tr>";
echo "<tr><td colspan='15' height='10'></td></tr>";
}
echo "</table>";
?>
//-- maak eerst de connectie met de database!
$user = "***";
$pass = "***";
$host = "***";
$dbdb = "***";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
$resultaten = mysql_query("SELECT * FROM `album` WHERE `soort` = 'project'");
$aantalFotos = mysql_num_rows($resultaten);
echo "<table width=\"475\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
for($i=0;$i<$aantalFotos;$i+=8){
echo "<tr>";
$bKolomWisselaar = true;
for($j=0;$j<8;$j++){
$fotoNaam=mysql_result($resultaten,$i+$j,"foto");
$id=mysql_result($resultaten,$i+$j,"id");
echo "<td><a href=\"foto.php?id=$id\"><img src='".$fotoNaam."' border=0></a></td>";
if($j<(8-1)){
if($bKolomWisselaar){
echo "<td width='10'> </td>";
$bKolomWisselaar = false;
}
else{
echo "<td width='45'> </td>";
$bKolomWisselaar = true;
}
}
}
echo "</tr>";
echo "<tr><td colspan='15' height='10'></td></tr>";
}
echo "</table>";
?>
Als je nu een standaard pic van 1x1 pix. maakt die leeg is, en die dan gewoon op de plaats van die rode kruisjes laat invoegen. Maar dan moet je wel eerst weten hoe je dit kunt doen... hmmm
Tsja dat krijg je er van als je er altijd vannuit gaat dat je 8 fotos per rij zult hebben. Zoals je ziet heb je dat niet en dat weet je ook van tevoren.
Het idee is dus om niet altijd maar gewoon 8 fotos te printen, maar om na elke 8 fotos naar de volgende regel te gaan.
Dus: haal al die FOR lussen weg en begin met een while lus dis per iteratie via mysql_fetch_assoc() het hele record ophaalt. (mysql_result() is trager, onoverzichtelijker en je hebt uiteindelijk toch altijd alles nodig wat je voor een foto selecteert)
Begin gewoon de fotos te printen en tel hoeveel je er al hebt geprint. Komt je teller bij 8, dan ga je naar de volgende regel en begin je opnieuw te tellen
Als de fotos op zijn houdt je aan het eind vanzelf je kolommenteller over en die staat dan op het aantal fotos dat hij wel heeft kunnen printen. Als dat niet precies 8 is kun je met een klein for lusje de rest van de hokjes printen zonder foto er in.
Code (php)
1
2
3
2
3
<?
echo "<td><a href=\"foto.php?id=$id\"><img src='".$fotoNaam."' border=0></a></td>";
?>
echo "<td><a href=\"foto.php?id=$id\"><img src='".$fotoNaam."' border=0></a></td>";
?>
met
Code (php)
hij kijkt hier dan of de variabele een waarde hebben en als dat zo is, laat hij het plaatje zien anders niet
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?
//-- maak eerst de connectie met de database!
$user = "***";
$pass = "***";
$host = "***";
$dbdb = "***";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
$resultaten = mysql_query("SELECT * FROM `album` WHERE `soort` = 'interieur2' ORDER BY `id` ASC");
$aantalFotos = mysql_num_rows($resultaten);
echo "<table width=\"225\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
for($i=0;$i<$aantalFotos;$i+=4){
echo "<tr>";
$bKolomWisselaar = true;
for($j=0;$j<4;$j++){
$fotoNaam=mysql_result($resultaten,$i+$j,"foto");
$id=mysql_result($resultaten,$i+$j,"id");
echo "<td>";
if (isset($fotoNaam) && isset($id)){
echo "<a href=\"foto.php?id=$id\"><img src='".$fotoNaam."' border=0></a>";
}else{}
echo "</td>";
if($j<(8-1)){
if($bKolomWisselaar){
echo "<td width='10'> </td>";
$bKolomWisselaar = false;
}
else{
echo "<td width='45'> </td>";
$bKolomWisselaar = true;
}
}
}
echo "</tr>";
echo "<tr><td colspan='15' height='10'></td></tr>";
}
echo "</table>";
?>
//-- maak eerst de connectie met de database!
$user = "***";
$pass = "***";
$host = "***";
$dbdb = "***";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
$resultaten = mysql_query("SELECT * FROM `album` WHERE `soort` = 'interieur2' ORDER BY `id` ASC");
$aantalFotos = mysql_num_rows($resultaten);
echo "<table width=\"225\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
for($i=0;$i<$aantalFotos;$i+=4){
echo "<tr>";
$bKolomWisselaar = true;
for($j=0;$j<4;$j++){
$fotoNaam=mysql_result($resultaten,$i+$j,"foto");
$id=mysql_result($resultaten,$i+$j,"id");
echo "<td>";
if (isset($fotoNaam) && isset($id)){
echo "<a href=\"foto.php?id=$id\"><img src='".$fotoNaam."' border=0></a>";
}else{}
echo "</td>";
if($j<(8-1)){
if($bKolomWisselaar){
echo "<td width='10'> </td>";
$bKolomWisselaar = false;
}
else{
echo "<td width='45'> </td>";
$bKolomWisselaar = true;
}
}
}
echo "</tr>";
echo "<tr><td colspan='15' height='10'></td></tr>";
}
echo "</table>";
?>