---
title: "Fixa en sökning med hjälp av php?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/140018-fixa-en-sökning-med-hjälp-av-php"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Dr-man"
published: "2005-12-29T08:52:10.000Z"
updated: "2006-01-04T21:39:06.000Z"
replies: 6
views: 512
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/140018-fixa-en-sökning-med-hjälp-av-php"
---

# Fixa en sökning med hjälp av php?

## #1 — Dr-man, 2005-12-29T08:52Z

Jag har tänkt göra en sökfunktion med tre textrutor. 
Det kan man söka är bilmärke, årsmodell och färg. 

Informationen finns lagrad i en MySQL-tabell. 
På vilket sätt löser man detta enklast med hjälp av php? 

Sökningen skall fungera på följande sätt ifall man endast skriver i en textruta, så visas resultatet enligt sökordet. Den skall också fungera på detta sätt, ifall man skriver i två eller flera textrutor, så skall det endast visa resultatet enligt 
sökorden. T.ex om man skriver i en textruta bilmärke, som Volvo och en annan textruta färg, som blå, skall det endast visa Volvo med färgen blå.

Permalänk: https://www.webforum.nu/p/140018

## #2 — mr.mainline, 2005-12-29T11:44Z

Kan man inte göra det med hjälp av if satser.

Permalänk: https://www.webforum.nu/p/1736655

## #3 — Duffer, 2005-12-29T12:06Z

Det är ju lite kul för din beskrivning av ditt problem är ju som psedukod (stavas?)
Det är ju bara att du programmerar som du sagt, skapa olika sql frågor med hjälp av dina "ifall satser" (if). 
Det är ju alltså hur många attribut i WHERE satsen som ska matchas som du bestämmer med dina if-satser.

EDIT! Observera hur varje rad börjar på "Det är ju"   :bire

Permalänk: https://www.webforum.nu/p/1736669

## #4 — aasah, 2005-12-29T18:27Z

Om dina fält i formuläret heter "marke", "farg" och "ar" och formuläret postas mha POST samt databasens fält heter detsamma med inledande versal, så skulle det bli något liknande:

```php
$where = "";
if (isSet($_POST["marke"])
  $where.= "Marke = '".$_POST["marke"]."' ";
if (isSet($_POST["farg"]) {
  if (strlen($where) > 0) $where .= " AND ";
  $where.= "Farg = '".$_POST["farg"]."' ";
}
if (isSet($_POST["ar"]) {
  if (strlen($where) > 0) $where .= " AND ";
  $where.= "Ar = '".$_POST["ar"]."' ";
}
$sql = "SELECT * FROM tabellnamn WHERE $where";
```

Permalänk: https://www.webforum.nu/p/1736805

## #5 — mmmMange, 2006-01-01T00:39Z

I princip samma som ovantående, men lite mer kortfattat:

```php
$marke = mysql_escape_string( $_POST['marke'] );
$farg = mysql_escape_string( $_POST['farg'] );
$ar = mysql_escape_string( $_POST['ar'] );

$where = '';
$where .= ($marke != '') ? "marke='$marke'" : '';
$where .= ($where != '') ? ' AND ' : '';
$where .= ($farg != '') ? "farg='$farg'" : '';
$where .= ($where != '') ? ' AND ' : '';
$where .= ($ar != '') ? "ar='$ar'" : '';

$sql = "SELECT * FROM bilar WHERE $where";
```

Permalänk: https://www.webforum.nu/p/1737458

## #6 — Gunnar_B, 2006-01-03T13:46Z

Går det inte bara att göra:

```php
$marke = mysql_escape_string( $_POST['marke'] ); 
$farg = mysql_escape_string( $_POST['farg'] ); 
$ar = mysql_escape_string( $_POST['ar'] ); 

$sql = "SELECT * FROM tabellnamn WHERE marke LIKE '%$marke%' AND farg LIKE '%$farg%' AND ar LIKE '%$ar%'";
```

Permalänk: https://www.webforum.nu/p/1738189

## #7 — aasah, 2006-01-04T21:39Z

...

Permalänk: https://www.webforum.nu/p/1738771

---

Tråden på webben: https://www.webforum.nu/amne/php/140018-fixa-en-sökning-med-hjälp-av-php
