---
title: "Fler sökord men inte bara som en fras"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/111134-fler-sökord-men-inte-bara-som-en-fras"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "bassebhu"
published: "2004-09-08T21:04:16.000Z"
updated: "2004-12-14T08:55:00.000Z"
replies: 5
views: 299
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/111134-fler-sökord-men-inte-bara-som-en-fras"
---

# Fler sökord men inte bara som en fras

## #1 — bassebhu, 2004-09-08T21:04Z

Hej alla glada!

Sökte men hittade bara en tråd om samma problem, utan svar.

Använder följande:

```
...SELECT * FROM noter WHERE typ = '".$sec."' AND (titel LIKE '%".$keyword."%' OR artist LIKE '%".$keyword."%' OR komp LIKE '%".$keyword."%' OR genre LIKE '%".$keyword."%' OR forlag LIKE '%".$keyword."%' OR instrument LIKE '%".$keyword."%') ORDER BY titel, komp ASC";
```

"typ" anger bara vilken kategori det är men det funkar bra. är det som är efter AND som är lurigt.. Söker man på t ex "Lennon Imagine Piano" så vill jag att den ska hitta allt som innehåller lennon, imagine och piano i samma post. Även om alla tre ord är i samma fält eller om det finns ett ord i varsitt fält.. Nu så kollar den efter hela frasen i fält efter fält så att säga.

Hur ska jag lösa det på bästa sätt? :)

Tack!

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

## #2 — tydal, 2004-09-08T21:23Z

Tja, ett sätt är ju att du splittar upp $keyword (funktionen explode) så du får:

$keywordArr\[0\] = "Lennon"
$keywordArr\[1\] = "Imagine"
$keywordArr\[2\] = "Piano"

Sedan använder du en foreach-loop på $keywordArr, typ:

```
$sql = "SELECT * FROM noter WHERE typ ='$sec'";
foreach ($keywordArr as $keyword)
{
  $sql .= " AND (titel LIKE '%$keyword%' OR artist LIKE '%$keyword% OR komp LIKE '%keyword%' OR genre LIKE '%$keyword%' OR forlag LIKE '%keyword%' OR instrument LIKE '%$keyword%')";
}
$sql .= " ORDER BY titel, komp";
```

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

## #3 — bassebhu, 2004-09-08T22:27Z

Tackar :) funkade klockis :D

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

## #4 — Fuel, 2004-12-14T08:50Z

hmm .. funkar inte för mig .. om man har 2 sökord så blir det träff bara om sökorden finns i samma dokument

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

## #5 — @nders, 2004-12-14T08:51Z

Byt AND till OR då i SQL-frågan.

mvh

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

## #6 — Fuel, 2004-12-14T08:55Z

Nej .. visar alla sidor

```php
	if (!empty($_REQUEST['q'])) {
		
		if ($_POST['q']) {
			$sarr = explode(" ", $_POST['q']);
		}
		if ($_GET['q']) {
			$sarr = explode("+", $_GET['q']);
		}

		$sql = "SELECT * FROM news WHERE status != 'N'";
		foreach ($sarr as $keyword)
		{
			$sql .= " AND (subject LIKE '%$keyword%' OR description LIKE '%$keyword%' OR keywords LIKE '%$keyword%')";
		}
		$sql .= " ORDER BY date DESC LIMIT 25";

		$get_news = mysql_query($sql) or die ("<h2>ERROR:</h2>" . mysql_error());
```

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

---

Tråden på webben: https://www.webforum.nu/amne/php/111134-fler-sökord-men-inte-bara-som-en-fras
