---
title: "Sökfunktion"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/115004-sökfunktion"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Pedda"
published: "2004-11-03T12:49:01.000Z"
updated: "2004-11-03T13:22:03.000Z"
replies: 7
views: 579
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/115004-sökfunktion"
---

# Sökfunktion

## #1 — Pedda, 2004-11-03T12:49Z

Håller på med en liten sökfunktion till en sida.

Men jag vill komplettera så den söker på **alla** ord som man skriver i sökfältet. Som det är nu så söker den ju bara på hela frasen.

Har testat lite med att köra explode på strängen men inte fått det att fungera.

Någon som har några ideer?

```php
// De kolumner du vill söka i
$kolumn = array('foretag', 'gata', 'postnrgata', 'postnrbox', 'ort', 'lan', 'riktnr', 'telefon', 'riktnrfax', 'search');

// Konstruera WHERE-delen i SQL-frågan
$var = array();
foreach ($kolumn as $kol) {
   $var[] = "$kol LIKE '%{$_GET['search']}%'";
}
$var = implode(' OR ', $var);
		
$data = mysql_query("SELECT * FROM foretag WHERE $var");
```

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

## #2 — Gislaved.net, 2004-11-03T12:54Z

Om du kör en explode på $\_GET\["search"\]; på mellanslag och kör en loop inom foreach-loopen borde det väl fungera? Hur har du gjort när du försökt?

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

## #3 — Pedda, 2004-11-03T13:04Z

Det är så jag testade men fick det inte att funka.
Tänkte att det kanske fanns något enklare sätt.

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

## #4 — Gislaved.net, 2004-11-03T13:14Z

```php
<?
// De kolumner du vill söka i

$kolumn = array('foretag', 'gata', 'postnrgata', 'postnrbox', 'ort', 'lan', 'riktnr', 'telefon', 'riktnrfax', 'search');

// Konstruera WHERE-delen i SQL-frågan

$var = array();

foreach ($kolumn as $kol) {

   // $var[] = "$kol LIKE '%{$_GET['search']}%'";
   $s = explode(" ", $_GET['search']);
   foreach ($s as $sokord){
        $var[] = "$kol LIKE '%$sokord%'";
   }

}

$var = implode(' OR ', $var);
$query = "SELECT * FROM foretag WHERE $var";
mysql_query($query);

?>
```

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

## #5 — Pedda, 2004-11-03T13:15Z

Fick det att fungera nu.

Hade bara klantat mig lite.

Här är koden om någon är intresserad.

```php
// De kolumner du vill söka i
$kolumn = array('foretag', 'gata', 'postnrgata', 'postnrbox', 'ort', 'lan', 'riktnr', 'telefon', 'riktnrfax', 'search');
		 
// Konstruera WHERE-delen i SQL-frågan
$var = array();
$ord = explode(" ",$_GET['search']);
foreach ($kolumn as $kol) {
	for($x=0; $x<count($ord); $x++) {
		$split[] = "$kol LIKE '%$ord[$x]%'";
	}
	$var[] = "$kol LIKE '%{$_GET['search']}%'";
}
$var = implode(' OR ', $var);
$split = implode(' OR ', $split);

$data = mysql_query("SELECT * FROM foretag WHERE $var OR $split");
```

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

## #6 — Pedda, 2004-11-03T13:16Z

Ah, du gjorde ett försök du med medans jag postade mitt inlägg.

Tack iaf. :)

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

## #7 — Gislaved.net, 2004-11-03T13:18Z

> **Pedda skrev:**
>
> Ah, du gjorde ett försök du med medans jag postade mitt inlägg.
> 
> Tack iaf. :)

Kul att det löste sig. Jag testade min version och den fungerar också. Det kändes lite mer logiskt med en foreach till eftersom du började med det.

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

## #8 — Pedda, 2004-11-03T13:22Z

Mysko, testade din kod och den funkar inte för mig.

**r/** Jodå, funkade visst när jag ändrade $query till $data som jag använde i mitt exempel.
Får nog sluta programmera nu, har bara sovit totalt 8 timmar de senast 4 nätterna så jag är ganska seg i skallen.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/115004-sökfunktion
