mysql en lightbox

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kareltje Van de rVeen

kareltje Van de rVeen

28/10/2009 20:46:00
Quote Anchor link
Hoi allemaal,
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?
 
PHP hulp

PHP hulp

27/04/2024 19:42:15
 
Martijn Wieringa

Martijn Wieringa

28/10/2009 21:01:00
Quote Anchor link
Worden de foto's opgeslagen in de database (als BLOB), of worden er links naar de bestanden opgeslagen?

Uiteindelijk moet de HTML iets worden als:

<img alt="Omschrijving" border="0" src="http://.../foto.jpg" rel="lightbox">
 
Jan Koehoorn

Jan Koehoorn

28/10/2009 21:34:00
Quote Anchor link
Ik doe het meestal zo: de thumbs hebben precies dezelfde naam als het grotere plaatje, alleen die staan in een andere map. Het is dan met PHP heel gemakkelijk om de code van de thumbs te echoën:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>
        '
;
    }

?>
 
Afra ca

Afra ca

28/10/2009 22:58:00
Quote Anchor link
En misschien interessant om te kijken naar Slimbox? Klik maar eens op de link en kijk daaronder wat de voordelen ten opzichte van lightbox zijn, zitten heel wat interessante dingen bij.
 
Kareltje Van de rVeen

kareltje Van de rVeen

31/10/2009 09:49:00
Quote Anchor link
Jan, dit is mijn script waar ik jou script in wil implementeren.
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)
PHP script in nieuw venster Selecteer het PHP script
1
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
 
Kareltje Van de rVeen

kareltje Van de rVeen

31/10/2009 10:01:00
Quote Anchor link
maar het werkt niet. Ergens doe ik iets fout maar ik kom er niet echt uit. Zie jij misschien waarom?
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>


Gelieve Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door kareltje Van de rVeen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.