Hej
Jeg er igang med at lave en simpel søgefunktion, hvor brugeren kan skrive et søgeord og så kan de vælge en kategori og en placering.
Til søgeordet anvender jeg et LIKE-wildcard, men det er kun en almindelig søgning, jeg ønsker jo at brugeren kan vælge nogle kriterier, som bliver inddraget i min forespørgsel til databasen, så jeg kun giver brugeren de resultater de vil se.
Er det så simpelt som at sige:
- session_start();
- include '../includes/connect.php';
- //Henter søgning
- $string = mysql_real_escape_string($_POST['searchfield']);
- $type = mysql_real_escape_string($_POST['boligtype']);
- $region = mysql_real_escape_string($_POST['region']);
-
- if(isset($_POST['search'])) {
- $search_query = mysql_query("SELECT * FROM boliger WHERE boligtype = '$type' AND region = '$region' WHERE titel OR beskrivelse LIKE %$string%");
- }
min query er bare skrevet i løs hånd og kunne heller ikke forestille mig at det virker praksis, men i teorien burde det jo virke, fordi jeg har to krav der skal være opfyldt og så matcher den de fund med et wildcard og spytter resultatet ud vha. dette et stykke længere nede på siden:
- if ($test = mysql_fetch_array ($search_query) > 0) {
- while ($search = mysql_fetch_assoc($search_query)) {
- echo '<p><a href="../showroom.php?id='.$search['id'].'">'.$search['titel'].'</a></p>';
- }
- }
- else {
- echo '<p>Din søgning gav desværre ingen resultater</p>';
- }
Men griber jeg sagen rigtigt an eller går jeg helt galt i skoven?