zoekresultaat op andere pagina tonen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Carel

Carel

09/01/2008 10:23:00
Quote Anchor link
Ik zou graag met mijn onderstaande script het zoekresultaat op een andere pagina willen weergeven. Momenteel wordt alles op 1 pagina uitgevoerd weergegeven. Loop daar nogal vast in. (let niet op zoekopcategorie invoerveld daar ben ik nog bezig mee)

Alvast bedankt

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
require_once("databaseconnectionuploaden.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zoeken</title>
</head>

<body>
<!--inputvelden voor gebruiker om te zoeken-->
<form form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    Zoek op categorie:<br>
    <select name="zoekopcategorie">
        <option value="Bibliotheek">Bibliotheek</option>
        <option value="Conferentie">Conferentie</option>
        <option value="BVBo7">NVB07</option>
        <option value="Onderwijs">Onderwijs</option>
        <option value="Onderzoek">Onderzoek</option>
        <option value="Publicatie">Publicatie</option>
        <option value="Raak project">Raak project</option>
        <option value="Related">Related</option>
        <option value="Site">Site</option>
        <option value="Subsidie">Subsidie</option>
        <option value="Under content creation">Under content creaction</option>
        <option value="Jongeren">Jongeren</option>
        <option value="Zonder categorie">Zonder categorie</option>
        <option value="alles" selected="selected">alles</option>
    </select><p>
    in:<br>
    <select name="zoekenin">
        <option value="omschrijving">Omschrijving</option>
        <option value="trefwoord">Trefwoord</option>
        <option value="alles" selected="selected">alles</option>
    </select><p>
    Met <b>alle</b> woorden (hoofdlettergevoelig):
    <input name="zoeken" type="text" id="zoeken" size="30"><P>
    <input type="submit" value="zoeken"><P>
</form>

<?php      
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $zoeken = mysql_real_escape_string($_POST['zoeken']);

//beveiliging zodat andere mensen niet mijn script kunnen gebruiken om in mijn database te komen
        if ($_POST['zoekenin'] == 'alles')
        {

//zoeken op alles de ingevoerde zoekwoord mag in 1 of meerdere tabellen voorkomen (zie or regel 60 OR)
            $zoekexploded = explode(' ', $zoeken);
//zorgt ervoor dat de variabelen weer leeg zijn (vooral belangrijk na een al reeds uitgevoerde zoekopdracht
            $like = "";            
            $like2 = "";
            foreach($zoekexploded as $k=>$v)
            {

                if($k == 0)
                {

                    $like .= "`trefwoord` LIKE '%".$v."%' ";
                    $like2 .= "`omschrijving` LIKE '%".$v."%' ";
                }

                else
                {
                    $like .= "AND `trefwoord` LIKE '%".$v."%' ";
                    $like2 .= "AND `omschrijving` LIKE '%".$v."%' ";
                }
            }

            $sql = "
                SELECT
                    thumbnail,
                    trefwoord,
                    omschrijving
                FROM
                    afbeelding
                WHERE
                    "
.$like." OR
                    "
.$like2."
            "
;
        }

        elseif ($_POST['zoekenin'] == 'trefwoord' || $_POST['zoekenin'] == 'omschrijving')
        {

/*zoeken op trefwoord OF omschrijving zoektermen mogen 1 of meerdere letters bevatten waarbij bij elke spatie gezocht wordt met AND operator*/
            $zoekexploded = explode(' ', $zoeken);
            $like = "";
            foreach($zoekexploded as $k=>$v)
            {

                if($k == 0)
                {

                    $like .= " `$_POST[zoekenin]` LIKE '%".$v."%' ";
                }

                else
                {
                    $like .= "AND `$_POST[zoekenin]` LIKE '%".$v."%' ";
                }
            }

            $sql = "
            SELECT
                thumbnail,
                trefwoord,
                omschrijving
            FROM
                afbeelding
            WHERE
                "
.$like."
        "
;
        }

        
    $res = mysql_query($sql);
    
    if(!$res)
    {

        trigger_error(mysql_error().'<br />In query: '.$sql);
    }

    else
    {
        if (mysql_num_rows($res) >= 1)
        {

            while ($row = mysql_fetch_array($res))
            {

//weergave van zoekresultaat
            echo '<p><img src="'.$row['thumbnail'].'" alt="thumbnail" /></p>';
            }

            echo "<p><a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
        }

        else
        {
            echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[zoeken]</b></p>";
            echo "<p><a href=\"registered_user_area_zoeken.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
        }
    }
}

?>

</body>
</html>
 
PHP hulp

PHP hulp

28/04/2024 20:32:28
 
Joren de Wit

Joren de Wit

09/01/2008 10:28:00
Quote Anchor link
Dan laat je de action van je formulier naar die andere pagina verwijzen en zet je daar ook de afhandeling van het formulier neer...

Ik zie verder niet echt in waarom je dat nodig zou hebben, aangezien je met een simpel else statement ook kan voorkomen dat het formulier weergegeven wordt. Je zul dan wel even de volgorde in je script moeten veranderen, iets dat je sowieso eigenlijk zou moeten doen. Je probeert namelijk altijd de logica (php) gescheiden te houden van de output (html) en bij jou staat het nu kris kras door elkaar...
 
Carel

Carel

09/01/2008 10:50:00
Quote Anchor link
Ik wil het doen omdat ik de zoekmachine wil blijven weergeven op een locatie waar de zoekresultaten niet weergegeven mogen worden.

Dat met action naar andere pagina laten verwijzen is idd meest simepelste. Grappig dat je soms zelf niet op dat soort dingen komt.

Zijn er misschien voorbeelden waar de logica php gescheiden gehouden wordt van de output (html). Ik heb daar niet zoveel ervaring mee namelijk dus en zie graag hoe het wel hoort.

bedankt.
 
Joren de Wit

Joren de Wit

09/01/2008 11:13:00
Quote Anchor link
Uitgebreide formulier controle

Maar ook in de andere voorbeelden die daar staan, zul je zien dat ze beginnen met PHP en pas later de HTML volgt.
 
Carel

Carel

09/01/2008 12:00:00
Quote Anchor link
Ohhh nu zie ik ook wat je precies bedoelt. Ik dacht dat PHP altijd in body van HTML moest....

Maaruh als je dat niet doet en je wilt met html aangegeven welke fontkleur gebruikt kan worden kun je moeilijk html beneden zetten tenzij je CSS gebruikt, maar als je dat niet doet hoe los jij dat dan op????
 
Joren de Wit

Joren de Wit

09/01/2008 12:04:00
Quote Anchor link
Alle output die ik in een PHP script genereer sla ik tijdelijk op in een array. Pas op het einde van het script, waar ik de html naar de browser ga versturen, lees ik deze array weer uit en geef ik de output weer op het scherm.
 



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.