3 fotos op pagina die willekeurig aan en uitgezet kunnen worden.
Ik heb mezelf met de volgende uitdaging opgescheept.
Ik heb in de database drie foto's staan. Deze foto's kan de ik aan en uit zetten voor weergave op het scherm.
De foto's staan naast elkaar op de website.
Als ze alle drie aanstaan dan moeten de foto's kleiner worden weergeven dat als er bijv twee of 1 aan staat.
Ik heb met if en else if dit stukje kunnen regelen.
Hieronder de code zoals ik het nu in een test gedaan heb Ik heb nu even tabellen gebruikt voor het gemak:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
//test waarde
$test ="25";
if ($test<"10")
{
// 1 foto met opmerking
echo'<table width="600" border="1"><tr><td>bovenste</td></tr><tr><td>onderste</td></tr></table>';
}
else if ($test<"20")
{
// 2 fotos met opmerkingen
echo '<table width="400" border="1"><tr><td>bovenlinks</td><td>bovenrechts</td></tr><tr><td>onderlinks</td><td>onderrechts</td></tr></table>';
}
else if ($test<"30")
{
// 2 fotos met opmerkingen.
echo '<table width="200" border="1"><tr><td>bovenlinks</td><td>bovenmidden</td><td>bovenrechts</td></tr><tr><td>onderlinks</td><td>ondermidden</td><td>onderrechts</td></tr></table>';
}
?>
//test waarde
$test ="25";
if ($test<"10")
{
// 1 foto met opmerking
echo'<table width="600" border="1"><tr><td>bovenste</td></tr><tr><td>onderste</td></tr></table>';
}
else if ($test<"20")
{
// 2 fotos met opmerkingen
echo '<table width="400" border="1"><tr><td>bovenlinks</td><td>bovenrechts</td></tr><tr><td>onderlinks</td><td>onderrechts</td></tr></table>';
}
else if ($test<"30")
{
// 2 fotos met opmerkingen.
echo '<table width="200" border="1"><tr><td>bovenlinks</td><td>bovenmidden</td><td>bovenrechts</td></tr><tr><td>onderlinks</td><td>ondermidden</td><td>onderrechts</td></tr></table>';
}
?>
Alleen ik heb dus drie foto's staan in mijn database en dus volgens mij 27 verschillende combinaties die gemaakt kunnen worden.
Het kan dus voorkomen dat foto 1 en 2 uitstaan en dat alleen foto 3 aanstaat. Deze moeten dan worden weergeven in tabel met 1 foto, maar het kan ook zijn dat 2 en 3 aanstaan en 1 uit dan moeten 2 en drie worden gegeven in de tabel waar twee foto's in staan.
Er kunnen dus 27 verschillende combinaties mogelijk zijn en deze wil ik dan voren naar mijn if else zodat de foto(s) optimaal kunnen weergegeven worden.
Kunnen jullie mij in de juiste richting wijzen?
Ik heb geen zin om alle 27 combinaties uit te typen en ik denk dat het ook niet nodig is.
met vriendelijke groeten,
Alexander
Je kunt toch met een query opvragen hoeveel er aan staan?
Uitkomst is (0,) 1, 2 of 3.
Je behandeld de getallen nu als 'text' en groter/kleiner dan snapt dit dan niet.
Maar Obelix heeft gelijk, je kan de foto's die aan staan gewoon met de query ophalen en dan met num_rows bepalen hoeveel foto's het zijn.
Ik heb het voor elkaar om de optelling te maken. Dank voor jullie opmerkingen hierover.
Alleen ik heb nog een vraag hoe laat ik nu de tabel weten welke foto hij moet laden laten zien? De foto's komen uit drie verschillende tabellen.
Het kan voorkomen dat als er maar 1 foto wordt weergeven dat deze uit tabel 2 komt i.p.v. 1 of bij twee kunnen er ook verschillende combinaties optreden.
Of maak ik ergens een denkfout en kan dit niet?
Hieronder staat de code zoals ik hem nu gemaakt heb en werkend.
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?
include('./connection/connectdb.php');
// HomePageFotoMiddenLinks
$querypicmiddenlinks = "SELECT * FROM HomePageFotoMiddenLinks WHERE HomePageFotoMiddenLinksAanUit='aan' ORDER BY HomePageFotoMiddenLinksDatum DESC LIMIT 1";
$resulpicmiddenlinks = mysqli_query($db_connect, $querypicmiddenlinks);
$picmiddenlinkscount = mysqli_num_rows($resulpicmiddenlinks);
while($row1 = mysqli_fetch_array($resulpicmiddenlinks)) {
$picmiddenlinkstitle = $row1['HomePageFotoMiddenLinksTitel'];
$picmiddenlinksdate = $row1['HomePageFotoMiddenLinksDatum'];
$picmiddenlinksonoff = $row1{'HomePageFotoMiddenLinksAanUit'};
$picmiddenlinksfullsize = $row1['HomePageFotoMiddenLinksFoto'];
$picmiddenlinkstumbsize = $row1['HomePageFotoMiddenLinksTumb'];
}
$count = mysqli_num_rows($resulpicmiddenlinks);
// Als de waarde van de tabel aanuit aan is wordt het record weergeven. Als deze uit is niet.
if ($picmiddenlinksonoff == 'aan') {
echo '<center><a href="../'.$picmiddenlinksfullsize.'" title="'.$picmiddenlinkstitle.'" rel="lightbox[foto]"><img src="../'.$picmiddenlinkstumbsize.'" alt="'.$picmiddenlinkstitle.'"></a></center>';
}
// HomePageFotoMiddenmidden
$querypicmiddenmidden = "SELECT * FROM HomePageFotoMiddenMidden WHERE HomePageFotoMiddenMiddenAanUit='aan' ORDER BY HomePageFotoMiddenMiddenDatum DESC LIMIT 1";
$resulpicmiddenmidden = mysqli_query($db_connect, $querypicmiddenmidden);
$picpicmiddenmiddencount = mysqli_num_rows($resulpicmiddenmidden);
while($row2 = mysqli_fetch_array($resulpicmiddenmidden)) {
$picmiddenmiddentitle = $row2['HomePageFotoMiddenMiddenTitel'];
$picmiddenmiddendate = $row2['HomePageFotoMiddenMiddenDatum'];
$picmiddenmiddenonoff = $row2{'HomePageFotoMiddenMiddenAanUit'};
$picmiddenmiddenfullsize = $row2['HomePageFotoMiddenMiddenFoto'];
$picmiddenmiddentumbsize = $row2['HomePageFotoMiddenMiddenTumb'];
}
// Als de waarde van de tabel aanuit aan is wordt het record weergeven. Als deze uit is niet.
if ($picmiddenmiddenonoff == 'aan') {
echo '<center><a href="../'.$picmiddenmiddenfullsize.'" title="'.$picmiddenmiddentitle.'" rel="lightbox[foto]"><img src="../'.$picmiddenmiddentumbsize.'" alt="'.$picmiddenmiddentitle.'"></a></center>';
}
// HomePageFotoMiddenrechts
$querypicmiddenrechts = "SELECT * FROM HomePageFotoMiddenRechts WHERE HomePageFotoMiddenRechtsAanUit='aan' ORDER BY HomePageFotoMiddenRechtsDatum DESC LIMIT 1";
$resulpicmiddenrechts = mysqli_query($db_connect, $querypicmiddenrechts);
$picpicmiddenrechtscount = mysqli_num_rows($resulpicmiddenmidden);
while($row3 = mysqli_fetch_array($resulpicmiddenrechts)) {
$picmiddenrechtstitle = $row3['HomePageFotoMiddenRechtsTitel'];
$picmiddenrechtsdate = $row3['HomePageFotoMiddenRechtsDatum'];
$picmiddenrechtsonoff = $row3{'HomePageFotoMiddenRechtsAanUit'};
$picmiddenrechtsfullsize = $row3['HomePageFotoMiddenRechtsFoto'];
$picmiddenrechtstumbsize = $row3['HomePageFotoMiddenRechtsTumb'];
}
// Als de waarde van de tabel aanuit aan is wordt het record weergeven. Als deze uit is niet.
if ($picmiddenrechtsonoff == 'aan') {
echo '<center><a href="../'.$picmiddenrechtsfullsize.'" title="'.$picmiddenrechtstitle.'" rel="lightbox[foto]"><img src="../'.$picmiddenrechtstumbsize.'" alt="'.$picmiddenrechtstitle.'"></a></center>';
}
// test om te kijken of de waardes kloppen.
echo "<br>middenlinks:<br>";
// aantalfoto's uit deze tabel.
echo $picmiddenlinkscount;
echo "<br>middenmidden:<br>";
// aantalfoto's uit deze tabel.
echo $picpicmiddenmiddencount;
echo "<br>middenrechts:<br>";
// aantalfoto's uit deze tabel.
echo $picpicmiddenrechtscount;
echo "<br>";
// aantallen optellen
$totalcount = $picmiddenlinkscount + $picpicmiddenmiddencount + $picpicmiddenrechtscount;
echo "<br> opgeteld:<br>";
//uitkomst van de telling
echo $totalcount;
echo "<br>";echo "<br>";
//tabellen weergave uiteindelijk op de website.
if ($totalcount==1)
{
// als de som 1 is dan deze tabel voor de weergave als er maar 1 foto aanstaat
echo'<table width="600" border="1"><tr><td>Hier moet een foto komen als het er maar 1 is die aanstaat</td></tr><tr><td>Hier moet een foto komen als het er maar 1 is die aanstaat</td></tr></table>';
}
else if ($totalcount==2)
{
// als de som 2 is dan deze tabel voor de weergave als er 2 foto's aanstaan
echo '<table width="400" border="1"><tr><td>bovenlinks</td><td>bovenrechts</td></tr><tr><td>onderlinks</td><td>onderrechts</td></tr></table>';
}
else if ($totalcount==3)
{
// als de som 3 is dan deze tabel voor de weergave als er 2 foto's aanstaan
echo '<table width="200" border="1"><tr><td>bovenlinks</td><td>bovenmidden</td><td>bovenrechts</td></tr><tr><td>onderlinks</td><td>ondermidden</td><td>onderrechts</td></tr></table>';
}
?>
include('./connection/connectdb.php');
// HomePageFotoMiddenLinks
$querypicmiddenlinks = "SELECT * FROM HomePageFotoMiddenLinks WHERE HomePageFotoMiddenLinksAanUit='aan' ORDER BY HomePageFotoMiddenLinksDatum DESC LIMIT 1";
$resulpicmiddenlinks = mysqli_query($db_connect, $querypicmiddenlinks);
$picmiddenlinkscount = mysqli_num_rows($resulpicmiddenlinks);
while($row1 = mysqli_fetch_array($resulpicmiddenlinks)) {
$picmiddenlinkstitle = $row1['HomePageFotoMiddenLinksTitel'];
$picmiddenlinksdate = $row1['HomePageFotoMiddenLinksDatum'];
$picmiddenlinksonoff = $row1{'HomePageFotoMiddenLinksAanUit'};
$picmiddenlinksfullsize = $row1['HomePageFotoMiddenLinksFoto'];
$picmiddenlinkstumbsize = $row1['HomePageFotoMiddenLinksTumb'];
}
$count = mysqli_num_rows($resulpicmiddenlinks);
// Als de waarde van de tabel aanuit aan is wordt het record weergeven. Als deze uit is niet.
if ($picmiddenlinksonoff == 'aan') {
echo '<center><a href="../'.$picmiddenlinksfullsize.'" title="'.$picmiddenlinkstitle.'" rel="lightbox[foto]"><img src="../'.$picmiddenlinkstumbsize.'" alt="'.$picmiddenlinkstitle.'"></a></center>';
}
// HomePageFotoMiddenmidden
$querypicmiddenmidden = "SELECT * FROM HomePageFotoMiddenMidden WHERE HomePageFotoMiddenMiddenAanUit='aan' ORDER BY HomePageFotoMiddenMiddenDatum DESC LIMIT 1";
$resulpicmiddenmidden = mysqli_query($db_connect, $querypicmiddenmidden);
$picpicmiddenmiddencount = mysqli_num_rows($resulpicmiddenmidden);
while($row2 = mysqli_fetch_array($resulpicmiddenmidden)) {
$picmiddenmiddentitle = $row2['HomePageFotoMiddenMiddenTitel'];
$picmiddenmiddendate = $row2['HomePageFotoMiddenMiddenDatum'];
$picmiddenmiddenonoff = $row2{'HomePageFotoMiddenMiddenAanUit'};
$picmiddenmiddenfullsize = $row2['HomePageFotoMiddenMiddenFoto'];
$picmiddenmiddentumbsize = $row2['HomePageFotoMiddenMiddenTumb'];
}
// Als de waarde van de tabel aanuit aan is wordt het record weergeven. Als deze uit is niet.
if ($picmiddenmiddenonoff == 'aan') {
echo '<center><a href="../'.$picmiddenmiddenfullsize.'" title="'.$picmiddenmiddentitle.'" rel="lightbox[foto]"><img src="../'.$picmiddenmiddentumbsize.'" alt="'.$picmiddenmiddentitle.'"></a></center>';
}
// HomePageFotoMiddenrechts
$querypicmiddenrechts = "SELECT * FROM HomePageFotoMiddenRechts WHERE HomePageFotoMiddenRechtsAanUit='aan' ORDER BY HomePageFotoMiddenRechtsDatum DESC LIMIT 1";
$resulpicmiddenrechts = mysqli_query($db_connect, $querypicmiddenrechts);
$picpicmiddenrechtscount = mysqli_num_rows($resulpicmiddenmidden);
while($row3 = mysqli_fetch_array($resulpicmiddenrechts)) {
$picmiddenrechtstitle = $row3['HomePageFotoMiddenRechtsTitel'];
$picmiddenrechtsdate = $row3['HomePageFotoMiddenRechtsDatum'];
$picmiddenrechtsonoff = $row3{'HomePageFotoMiddenRechtsAanUit'};
$picmiddenrechtsfullsize = $row3['HomePageFotoMiddenRechtsFoto'];
$picmiddenrechtstumbsize = $row3['HomePageFotoMiddenRechtsTumb'];
}
// Als de waarde van de tabel aanuit aan is wordt het record weergeven. Als deze uit is niet.
if ($picmiddenrechtsonoff == 'aan') {
echo '<center><a href="../'.$picmiddenrechtsfullsize.'" title="'.$picmiddenrechtstitle.'" rel="lightbox[foto]"><img src="../'.$picmiddenrechtstumbsize.'" alt="'.$picmiddenrechtstitle.'"></a></center>';
}
// test om te kijken of de waardes kloppen.
echo "<br>middenlinks:<br>";
// aantalfoto's uit deze tabel.
echo $picmiddenlinkscount;
echo "<br>middenmidden:<br>";
// aantalfoto's uit deze tabel.
echo $picpicmiddenmiddencount;
echo "<br>middenrechts:<br>";
// aantalfoto's uit deze tabel.
echo $picpicmiddenrechtscount;
echo "<br>";
// aantallen optellen
$totalcount = $picmiddenlinkscount + $picpicmiddenmiddencount + $picpicmiddenrechtscount;
echo "<br> opgeteld:<br>";
//uitkomst van de telling
echo $totalcount;
echo "<br>";echo "<br>";
//tabellen weergave uiteindelijk op de website.
if ($totalcount==1)
{
// als de som 1 is dan deze tabel voor de weergave als er maar 1 foto aanstaat
echo'<table width="600" border="1"><tr><td>Hier moet een foto komen als het er maar 1 is die aanstaat</td></tr><tr><td>Hier moet een foto komen als het er maar 1 is die aanstaat</td></tr></table>';
}
else if ($totalcount==2)
{
// als de som 2 is dan deze tabel voor de weergave als er 2 foto's aanstaan
echo '<table width="400" border="1"><tr><td>bovenlinks</td><td>bovenrechts</td></tr><tr><td>onderlinks</td><td>onderrechts</td></tr></table>';
}
else if ($totalcount==3)
{
// als de som 3 is dan deze tabel voor de weergave als er 2 foto's aanstaan
echo '<table width="200" border="1"><tr><td>bovenlinks</td><td>bovenmidden</td><td>bovenrechts</td></tr><tr><td>onderlinks</td><td>ondermidden</td><td>onderrechts</td></tr></table>';
}
?>
Ik ga niet van die ellenlange kolomnamen typen dus een ingekort voorbeeld:
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
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
(SELECT
titellinks,
datumlinks,
fotolinks,
thumblinks
FROM
fotoslinks
WHERE aan_uit = 'aan'
ORDER BY datumlinks DESC LIMIT 1
)
UNION
(SELECT
titelrechts,
datumrechts,
fotorechts,
thumbrechts
FROM
fotosrechts
WHERE aan_uit = 'aan'
ORDER BY datumrechts DESC LIMIT 1
)
UNION
(SELECT
titelmidden,
datummidden,
fotomidden,
thumbmidden
FROM
fotosmidden
WHERE aan_uit = 'aan'
ORDER BY datummidden DESC LIMIT 1
)
titellinks,
datumlinks,
fotolinks,
thumblinks
FROM
fotoslinks
WHERE aan_uit = 'aan'
ORDER BY datumlinks DESC LIMIT 1
)
UNION
(SELECT
titelrechts,
datumrechts,
fotorechts,
thumbrechts
FROM
fotosrechts
WHERE aan_uit = 'aan'
ORDER BY datumrechts DESC LIMIT 1
)
UNION
(SELECT
titelmidden,
datummidden,
fotomidden,
thumbmidden
FROM
fotosmidden
WHERE aan_uit = 'aan'
ORDER BY datummidden DESC LIMIT 1
)
Let op dat de kolomnamen van de eerste select de kolomnamen worden voor het gehele resultaat
Gewijzigd op 07/07/2013 14:30:52 door Ger van Steenderen