Jeg er ved at opdaterer mit søge script. Søgemaskinen søger i min database der hvor jeg beder den om at søge. Det nye er jeg gerne vil lave nogle søge ord som brugerne kan klikke af i en checkbox hvis han vil bruge ordet i søgningen.
Ind til videre virker min søgemaskine, det eneste problem er at den kun søger på det sidste ord og ikke alle de markerede ord. Min formel ser således ud:
- <form method="POST" action="<?=$_SERVER["PHP_SELF"]?>">
- <p>Search for:
- </p>
- Bøger: <input type="checkbox" name='search' value="bøger">
- Film: <input type="checkbox" name='search' value="Film">
- Biografen: <input type="checkbox" name='search' value="Biografen">
- Spil: <input type="checkbox" name='search' value="Spil">
- </p>
- <p><input type='submit' value='SØG'></p>
- </form>
Php koden bag ser således ud:
- <?php
- if(isset($_POST['search']))
- {
- $connx = mysql_connect('localhost', '*******', ',*********') or die("connx");
- $db = mysql_select_db('*********') or die(mysql_error());
-
- # convert to upper case, trim it, and replace spaces with "|":
- $search = mysql_real_escape_string($search);
- $search = strtoupper(preg_replace('/\s+/', '|', ($_POST['search'])));
-
- # create a MySQL REGEXP for the search:
- $regexp = "REGEXP '[[:<:]]($search)[[:>:]]'";
- $query = "SELECT * FROM `keywords` WHERE UPPER(`keywords01`) $regexp OR ".
- "`keywords02` $regexp OR ".
- "`keywords03` $regexp OR ".
- "`keywords04` $regexp";
-
- $result = mysql_query($query) or die($query . " - " . mysql_error());
-
- echo "<table>\n";
- while($row = mysql_fetch_assoc($result))
-
- {
- echo "<tr>";
- echo "<td><img src=../{$row['type']}/{$row['folder']}/{$row['date']}-{$row['num']}/{$row['thumbimage']} border=1></td>";
- echo "<td>{$row['name']}</td>";
- echo "<td>{$row['date']}</td>";
- echo "<td><a href=../view.php?id={$row['id']} target=blank>SE</a></td>";
- echo "</tr>\n";
- }
- }
- else {
- echo "<p>Søgningen gav intet resultat</p>";
- }
- ?>
Er der nogle der kan gennemskue hvorfor det kun er det sidste afmærket checkboxs ord der bliver søgt på og ikke alle afmærkede ord samt hvordan får jeg den til at søge på alle ord?
Håber nogle kan hjælpe.