mysql en lightbox
wat ik op mijn site graag wil is dat als iemand op een thumbnail klikt dat de originele foto opent. Dat kan via Lightbox. Opzich lukt dat goed. Maar nu een probleem. Op mijn site kun je via een menu een zoekopdracht maken door bepaalde items te selecteren en dan op zoeken te klikken. In mijn geval: merk auto, kleur vd auto en bouwjaar. Het script gaat dan zoeken in mijn database en opent dan op een nieuwe pagina (results.php) de thumbnails van de foto's van de autos die voldoen aan de zoekopdracht.
Het probleem is dat ik niet goed weet hoe ik van die thumbnails een link moet maken. Met andere woorden hoe koppel ik in de mysql database een link aan de foto zodat als de foto opent op de results.php pagina de link er dus automatisch aan vast zit. En is het mogelijk om die link een lightbox link te laten zijn (dat is namelijk een heel mooi effect)?
Ik kom er niet goed uit, hoop dat iemand ervaring met dit probleem heeft.
Zijn er dingen die jullie nodig hebben om deze vraag te kunnen beantwoorden? vb mn script, of database design?
Uiteindelijk moet de HTML iets worden als:
<img alt="Omschrijving" border="0" src="http://.../foto.jpg" rel="lightbox">
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
while ($row = mysql_fetch_assoc ($res)) {
echo '
<a title="' . $row['titel'] . '" href="images/big/' . $row['filename'] . '" rel="lightbox"><img class="thumb" src="images/thumbs/' . $row['filename'] . '"></a>
';
}
?>
while ($row = mysql_fetch_assoc ($res)) {
echo '
<a title="' . $row['titel'] . '" href="images/big/' . $row['filename'] . '" rel="lightbox"><img class="thumb" src="images/thumbs/' . $row['filename'] . '"></a>
';
}
?>
Slimbox? Klik maar eens op de link en kijk daaronder wat de voordelen ten opzichte van lightbox zijn, zitten heel wat interessante dingen bij.
En misschien interessant om te kijken naar Het deel van de database waar ik de foto's opsla heet FOTO en ziet er als volgt uit.
ID-FOTOthumb-FOTObig-Catalog_ID
Ik heb wat problemen met het implementeren van het script. Ik dacht als volgt op regel 46 van het script (zie volgende bericht):
Code (php)
1
2
3
2
3
echo '<a title="' . $row['FOTO'] . '" href="images/big/' . $row['FOTObig'] . '" rel="lightbox"><img src="images/thumbs/' . $fotorow['FOTOthumb']."'></a>'; alt='".$row["MERK"]." - ".$row["KLEUR"]." - ".$row["BOUWJAAR"]."' /><br />";
[/CODE]
Gewijzigd op 01/01/1970 01:00:00 door kareltje Van de rVeen
Dit is het oorspronkelijk script waar jou script in verwerkt zou moeten worden. Zoals ik het heb gedaan krijg ik op mijn result pagina geen foto's te zien.
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
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
<?php
error_reporting ( E_ALL );
ini_set ( 'display_errors', 1 );
?>
<?php
include inlog.php
?>
<?php
$merken = array("audi","bmw","opel");
$kleuren = array("blauw","groen","rood",);
if($_SERVER['REQUEST_METHOD'] == 'POST' ) {
$where = array();
if (isset($_POST["merk"]) && in_array($_POST["merk"],$merken)) {
$where[] = "MERK='".$_POST["merk"]."'";
}
if (isset($_POST["kleur"]) && in_array($_POST["kleur"],$kleuren)) {
$where[] = "KLEUR='".$_POST["kleur"]."'";
}
if (isset($_POST["bouwjaar"]) && preg_match("/^(19|20)\d\d$/i", $_POST["bouwjaar"])) {
$where[] = "BOUWJAAR='".$_POST["bouwjaar"]."'";
}
if (count($where)==0) {
echo "Geen zoektermen bekend. Opdracht geannuleerd.";
} else {
$query = "select ID, MERK, KLEUR, BOUWJAAR from catalog_tabel WHERE ".implode(" AND ",$where);
if ($result = mysql_query($query)) {
if (mysql_num_rows($result)<>0) {
while ( $row = mysql_fetch_assoc ( $result ) ) {
echo $row["MERK"]." - ".$row["KLEUR"]." - ".$row["BOUWJAAR"]."<br />";
$beschrijvingquery = "select BESCHRIJVING from beschrijving where Catalog_ID=".$row["ID"];
if ($beschrijvingresult = mysql_query($beschrijvingquery)) {
if (mysql_num_rows($beschrijvingresult)<>0) {
while ( $beschrijvingrow = mysql_fetch_assoc ( $beschrijvingresult ) ) {
echo $beschrijvingrow["BESCHRIJVING"]."<br />";
}
} else {
echo "geen beschrijving<br />";
}
}
$fotoquery = "select FOTOthumb, FOTObig from foto where Catalog_ID=".$row["ID"];
if ($fotoresult = mysql_query($fotoquery)) {
if (mysql_num_rows($fotoresult)<>0) {
while ( $fotorow = mysql_fetch_assoc ( $fotoresult ) ) {
echo "<img src='".$fotorow["FOTOthumb"]."' alt='".$row["MERK"]." - ".$row["KLEUR"]." - ".$row["BOUWJAAR"]."' /><br />";
}
} else {
echo "<img src='geenfoto.jpg' alt='geen foto' /><br />";
}
}
}
} else {
echo "Geen auto's gevonden die voldoen aan uw zoekopdracht.";
}
}
}
}
?>
<hr />
<form method="post" action="results.php">
<select name="merk">
<option selected="selected">Merk</option>
<option><?php echo implode("</option><option>",$merken); ?></option>
</select>
<select name="kleur">
<option selected="selected">Kleur</option>
<option><?php echo implode("</option><option>",$kleuren); ?></option>
</select>
<select name="bouwjaar">
<option selected="selected">Bouwjaar</option>
<option>1990</option>
<option>1991</option>
<option>1992</option>
</select>
<input type="submit" value="zoeken" />
</form>
error_reporting ( E_ALL );
ini_set ( 'display_errors', 1 );
?>
<?php
include inlog.php
?>
<?php
$merken = array("audi","bmw","opel");
$kleuren = array("blauw","groen","rood",);
if($_SERVER['REQUEST_METHOD'] == 'POST' ) {
$where = array();
if (isset($_POST["merk"]) && in_array($_POST["merk"],$merken)) {
$where[] = "MERK='".$_POST["merk"]."'";
}
if (isset($_POST["kleur"]) && in_array($_POST["kleur"],$kleuren)) {
$where[] = "KLEUR='".$_POST["kleur"]."'";
}
if (isset($_POST["bouwjaar"]) && preg_match("/^(19|20)\d\d$/i", $_POST["bouwjaar"])) {
$where[] = "BOUWJAAR='".$_POST["bouwjaar"]."'";
}
if (count($where)==0) {
echo "Geen zoektermen bekend. Opdracht geannuleerd.";
} else {
$query = "select ID, MERK, KLEUR, BOUWJAAR from catalog_tabel WHERE ".implode(" AND ",$where);
if ($result = mysql_query($query)) {
if (mysql_num_rows($result)<>0) {
while ( $row = mysql_fetch_assoc ( $result ) ) {
echo $row["MERK"]." - ".$row["KLEUR"]." - ".$row["BOUWJAAR"]."<br />";
$beschrijvingquery = "select BESCHRIJVING from beschrijving where Catalog_ID=".$row["ID"];
if ($beschrijvingresult = mysql_query($beschrijvingquery)) {
if (mysql_num_rows($beschrijvingresult)<>0) {
while ( $beschrijvingrow = mysql_fetch_assoc ( $beschrijvingresult ) ) {
echo $beschrijvingrow["BESCHRIJVING"]."<br />";
}
} else {
echo "geen beschrijving<br />";
}
}
$fotoquery = "select FOTOthumb, FOTObig from foto where Catalog_ID=".$row["ID"];
if ($fotoresult = mysql_query($fotoquery)) {
if (mysql_num_rows($fotoresult)<>0) {
while ( $fotorow = mysql_fetch_assoc ( $fotoresult ) ) {
echo "<img src='".$fotorow["FOTOthumb"]."' alt='".$row["MERK"]." - ".$row["KLEUR"]." - ".$row["BOUWJAAR"]."' /><br />";
}
} else {
echo "<img src='geenfoto.jpg' alt='geen foto' /><br />";
}
}
}
} else {
echo "Geen auto's gevonden die voldoen aan uw zoekopdracht.";
}
}
}
}
?>
<hr />
<form method="post" action="results.php">
<select name="merk">
<option selected="selected">Merk</option>
<option><?php echo implode("</option><option>",$merken); ?></option>
</select>
<select name="kleur">
<option selected="selected">Kleur</option>
<option><?php echo implode("</option><option>",$kleuren); ?></option>
</select>
<select name="bouwjaar">
<option selected="selected">Bouwjaar</option>
<option>1990</option>
<option>1991</option>
<option>1992</option>
</select>
<input type="submit" value="zoeken" />
</form>
Gelieve Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door kareltje Van de rVeen